正则表达式:匹配以“Id”结尾的单词

我需要帮助整理一个正则表达式,它将以“Id”结尾的单词与区分大小写的匹配相匹配。

试试这个正则表达式:

 \w*Id\b 

\w*允许在Id前面的单词字符和\b确保Id位于单词的末尾( \b是单词边界断言)。

Gumbo获得了我的投票,然而,OP没有说明“Id”是否是允许的单词,这意味着我做了一个小修改:

 \w+Id\b 

1个或多个单词字符后跟“Id”和空格。 [a-zA-Z]变体不考虑非英语字母字符。 我也可以使用\ s而不是\ b作为空格而不是空格。 这取决于你是否需要包裹多行。

这可能会成功:

 \b\p{L}*Id\b 

\p{L}匹配任何(Unicode)字母, \b匹配字边界。

怎么样\A[az]*Id\z ? [这使得Id之前的字符可选。 如果\A[az]+Id\z之前需要一个或多个字符,请使用\A[az]+Id\z

我会用
\b[A-Za-z]*Id\b
\ b匹配单词的开头和结尾,即空格,制表符或换行符,或字符串的开头或结尾。

[A-Za-z]将匹配任何字母,而*表示0+匹配。 最后是Id。

请注意,这将匹配中间带有大写字母的单词,例如’teStId’。

我使用http://www.regular-expressions.info/进行正则表达式参考

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

“\ b”表示“单词分隔符号”&\ w表示任何单词字符,因此\ w * Id \ b表示“{stuff} Id”。 如果不包含RegexOptions.IgnoreCase,它将区分大小写。