Подтвердить что ты не робот

Regex: совпадающее слово, которое заканчивается на "Id"

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

4b9b3361

Ответ 1

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

\w*Id\b

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

Ответ 2

Gumbo получает мой голос, однако OP не указывает, является ли только "Id" допустимым словом, что означает, что я внес бы незначительную модификацию:

\w+Id\b

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

Ответ 3

Это может сделать трюк:

\b\p{L}*Id\b

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

Ответ 4

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

Ответ 5

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

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

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

Я использую http://www.regular-expressions.info/ для ссылки regex

Ответ 6

Regex ids = new Regex(@"\w*Id\b", RegexOptions.None);

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