Мне нужна помощь в создании регулярного выражения, которое будет соответствовать слову, которое заканчивается знаком "Id" с учетом регистра.
Regex: совпадающее слово, которое заканчивается на "Id"
Ответ 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, он будет чувствителен к регистру.