Как расстаться с первым появлением персонажа - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть эти строки, которые:

POS_17=78n(18n,100n)n
WOS<8s(4s,5s)s=Pos:D4 Facebook F:5/8 Rack

У меня есть проблема с этим регулярным выражением, как показано ниже:

^\s*([^_]+)(_\w+)?([<>=])(.*)\s*$

Проблема в том, что если есть = или <или> в та же строка, это займет последнее явление одного из этих символов < > =. Моя проблема во второй строке. Вы можете проверить это https://regex101.com/r/PDACQl/1

Ожидаемый результат:

**For First line :**
POS_17=78n(18n,100n)n

Group 1.    POS
Group 2.    _17
Group 3.    =
Group 4.    78n(18n,100n)n

**For second line :**
WOS<8s(4s,5s)s=Pos:D4 Facebook F:5/8 Rack

Group 1.    WOS
Group 3.    <
Group 4.    8s(4s,5s)s=Pos:D4 Facebook F:5/8 Rack

Ответы [ 2 ]

1 голос
/ 30 апреля 2020
^\s*([^\W_]+)(_\d+)?([<=>])(.*\S)\s*$

См. https://regex101.com/r/PDACQl/2

1 голос
/ 30 апреля 2020

Вы можете добавить символы <> и = к первому отрицательному классу символов, чтобы они не соответствовали им.

Вы можете опустить \s* в конце, так как это необязательно и не является частью последнего захвата группа.

^\s*([^_<>=]+)(_\w+)?([<>=])(.*)$
        ^^^

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...