C#: какое регулярное выражение может соответствовать этому тексту? - PullRequest
0 голосов
/ 14 февраля 2020

какое регулярное выражение может соответствовать этим в C#:

^TEST(%USER,"ADDRESS","NAME","^\",()")
^TEST(%USER,"ADDRESS","NAME")
^TEST()
^TEST
^TEST("HALLO")
$$TEST^QCC("HALLO")
$$TEST^QCC

Я надеюсь, что смогу получить две группы:

группа 1: текст перед левой круглой скобкой, если есть левая круглая скобка, в противном случае весь текст.

группа 2: текст между круглыми скобками.

Я пробовал регулярное выражение "(\ S +) ((\ S +))" в https://regex101.com/r/R5wiOh/12 но работает не очень хорошо.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Попробуйте это:

^(\S+?)(?:\((\S*)\))?$

Это в основном то же самое регулярное выражение, которое вы использовали, но создающее необязательную группу без захвата вокруг второй группы. Это означает: если доступно, захватите его содержимое в группу 2.

0 голосов
/ 14 февраля 2020

я нашел решение:

^ (\ S +?) ((\ S *)) $

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