Другие являются хорошими предложениями и могут быть лучшим способом сделать это. Но я подумал, что постараюсь ответить на вопрос в том виде, в котором он был задан - лишь бы привести пример регулярных выражений.
Ниже приведена специальная разобранная форма, допустимая в некоторых двигателях. Конечно, странным является то, что механизм, который допускает регулярные выражения с комментариями, допускает и другие упрощенные выражения, но не как универсальные. Я оставлю эти упрощенные выражения в скобках в комментариях.
& # an ampersand
( \# # a '#' character
[1-9] # followed by a non-zero digit,
[0-9]{1,3} # with between 2 and 4 (\d{1,3} or \p{IsDigit}{1,3})
| [A-Za-z] # OR a letter (\p{IsAlpha})
[0-9A-Za-z]+ # followed by letters or numbers (\p{IsAlnum}+)
)
; # all capped with a ';'
Вы можете даже добавить туда целую группу ожидаемых сущностей, чтобы помочь сканеру регулярных выражений.
& # an ampersand
( amp | apos | gt | lt | nbsp | quot
# standard entities
| bull | hellip | [lr][ds]quo | [mn]dash | permil
# some fancier ones
| \# # a '#' character
[1-9] # followed by a non-zero digit,
[0-9]{1,3} # with between 2 and 4
| [A-Za-z] # OR a letter
[0-9A-Za-z]+ # followed by letters or numbers
)
; # all capped with a ';'