Java оператор сравнения совпадений с регулярным выражением - PullRequest
1 голос
/ 21 апреля 2020

Мне нужно регулярное выражение, чтобы соответствовать чему-то подобному

key>value
key=value
key.subkey>=value

Вот мое регулярное выражение

([a-zA-Z]*\.{0,1}[a-zA-Z]*)([=|>|<|>=|<=]{1})(.*)

, оно работает для большинства случаев, но за исключением> = и <= </p>

Пример:

test>=123

Group
0   test>=123
1   test
2   >
3   =123

как указать, что последняя группа не начинается со специальных символов?

1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете использовать

([a-zA-Z]+(?:\.[a-zA-Z]+)?)([<>]=|[=><])(.*)

См. Демоверсию regex

Подробности

  • ([a-zA-Z]+(?:\.[a-zA-Z]+)?) - Группа 1: 1+ букв ASCII, за которыми следует необязательная последовательность точек и 1+ букв ASCII
  • ([<>]=|[=><]) - Группа 2: < или >, а затем = или =, < или > (, поэтому более длинные, <= или >= пробуются первыми )
  • (.*) - Группа 3: любые 0 или больше символов, кроме символов разрыва строки, как можно больше.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...