Regex обязательные и необязательные группы - PullRequest
0 голосов
/ 30 января 2019

Я хотел бы создать регулярное выражение с группами, которые должны быть включены в строку, и группы, которые являются необязательными.Для этого я использую c #.

Моя строка цели выглядит следующим образом

    ##my_first_string-2#E+1##
    ##my_second_string-2#E-2##
    ##my_third_string__##

У меня есть следующие требования :

  • ## является обязательным в начале и конце (но это не обязательно начало или конец строки)
  • строка между ## и # (или ## ) также является обязательным
  • E + {Numbers} или E- {Numbers} необязательно

Пока у меня естьпридумайте

(##.*?##)

=>, чтобы сопоставить все символы между 2 ## ##

(##)([A-Za-z\-])\w+(##)

=>, чтобы соответствовать первой строке.Но по какой-то причине это захватывает ## my_first_string-2 , а не только my_first_string-2

Не могли бы вы помочь мне создать регулярное выражение для моих требований?

1 Ответ

0 голосов
/ 30 января 2019

Попробуйте:

##([^#]+?)(#E[+-][0-9]+)?##

Важная часть:

(#E[+-][0-9]+)?

"?"квантификатор задает ноль или одно вхождение

Замените следующее на требования к символам для строки, в настоящее время это просто "все, кроме #"

([^#]+?)

Надеюсь, это поможет.

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