regex: соответствует слову, оканчивающемуся на "Id" - PullRequest
29 голосов
/ 12 февраля 2010

Мне нужна помощь в составлении регулярного выражения, которое будет сопоставлять слова, заканчивающиеся на "Id", с учетом регистра с учетом регистра.

Ответы [ 6 ]

59 голосов
/ 12 февраля 2010

Попробуйте это регулярное выражение:

\w*Id\b

\w* допускает использование символов слова перед Id, а \b гарантирует, что Id находится в конце слова (\b - утверждение границы слова).

9 голосов
/ 12 февраля 2010

Гамбо получает мой голос, однако ОП не указывает, является ли допустимым слово "Id", что означает, что я бы внес незначительные изменения:

\w+Id\b

1 или более символов слова, за которыми следует «Id» и пробел. Варианты [a-zA-Z] не учитывают неанглийские буквенные символы. Я мог бы также использовать \ s вместо \ b в качестве пробела, а не пробела. Это зависит от того, нужно ли вам переносить несколько строк.

6 голосов
/ 12 февраля 2010

Это может помочь:

\b\p{L}*Id\b

Где \p{L} соответствует любой (Юникод) букве, а \b соответствует границе слова.

4 голосов
/ 12 февраля 2010

Как насчет \A[a-z]*Id\z? [Это делает символы до Id необязательными. Используйте \A[a-z]+Id\z, если перед Id. Должен стоять один или несколько символов.]

2 голосов
/ 12 февраля 2010

Я бы использовал
\b[A-Za-z]*Id\b
\ B соответствует началу и концу слова, то есть пробела, табуляции или новой строки, или началу или концу строки.

[A-Za-z] будет соответствовать любой букве, а * означает, что 0+ соответствует. Наконец, есть идентификатор.

Обратите внимание, что это будет соответствовать словам с заглавными буквами в середине, например, "teStId".

Я использую http://www.regular -expressions.info / для ссылки на регулярные выражения

1 голос
/ 12 февраля 2010
Regex ids = new Regex(@"\w*Id\b", RegexOptions.None);

"\ b" означает "разрыв слова" & \ w означает любой символ слова, поэтому \ w * Id \ b означает "{stuff} Id". Не включая RegexOptions.IgnoreCase, он будет чувствителен к регистру.

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