如何组合一个正则表达式来匹配以“Id”结尾的单词,并进行区分大小写的匹配?
6ioyuze21#
试试这个正则表达式:
\w*Id\b
\w*允许字字符在Id前面,\b确保Id在字的末尾(\b是字边界Assert)。
\w*
Id
\b
suzh9iv82#
Gumbo得到了我的投票,然而,OP没有指定“Id”是否是一个允许的词,这意味着我会做一个小修改:
\w+Id\b
1个或多个单词字符,后跟“Id”和一个分隔符。[a-zA-Z]变体不考虑非英文字母字符。我也可以用\s代替\B作为空格而不是分隔符。这将取决于你是否需要多行换行。
gmol16393#
这可能会起作用:
\b\p{L}*Id\b
其中\p{L}匹配任何(Unicode)字母,\b匹配单词边界。
\p{L}
qoefvg9y4#
\A[a-z]*Id\z怎么样?[这使得Id之前的字符可选。如果需要在Id之前有一个或多个字符,请使用\A[a-z]+Id\z。]
\A[a-z]*Id\z
\A[a-z]+Id\z
bejyjqdl5#
我会用\b[A-Za-z]*Id\b\B匹配单词的开头和结尾,即空格、制表符或换行符,或者字符串的开头或结尾。[A-Za-z]将匹配任何字母,* 表示匹配0+。最后是ID。请注意,这将匹配中间有大写字母的单词,如'teStId'。我使用http://www.regular-expressions.info/作为regex引用
\b[A-Za-z]*Id\b
swvgeqrz6#
Regex ids = new Regex(@"\w*Id\b", RegexOptions.None);
\b表示“断字”,\w表示任何单词字符。所以\w*Id\b表示“{stuff}Id”。由于不包含RegexOptions.IgnoreCase,因此它将区分大小写。
\w
RegexOptions.IgnoreCase
6条答案
按热度按时间6ioyuze21#
试试这个正则表达式:
\w*
允许字字符在Id
前面,\b
确保Id
在字的末尾(\b
是字边界Assert)。suzh9iv82#
Gumbo得到了我的投票,然而,OP没有指定“Id”是否是一个允许的词,这意味着我会做一个小修改:
1个或多个单词字符,后跟“Id”和一个分隔符。[a-zA-Z]变体不考虑非英文字母字符。我也可以用\s代替\B作为空格而不是分隔符。这将取决于你是否需要多行换行。
gmol16393#
这可能会起作用:
其中
\p{L}
匹配任何(Unicode)字母,\b
匹配单词边界。qoefvg9y4#
\A[a-z]*Id\z
怎么样?[这使得Id
之前的字符可选。如果需要在Id
之前有一个或多个字符,请使用\A[a-z]+Id\z
。]bejyjqdl5#
我会用
\b[A-Za-z]*Id\b
\B匹配单词的开头和结尾,即空格、制表符或换行符,或者字符串的开头或结尾。
[A-Za-z]将匹配任何字母,* 表示匹配0+。最后是ID。
请注意,这将匹配中间有大写字母的单词,如'teStId'。
我使用http://www.regular-expressions.info/作为regex引用
swvgeqrz6#
\b
表示“断字”,\w
表示任何单词字符。所以\w*Id\b
表示“{stuff}Id”。由于不包含RegexOptions.IgnoreCase
,因此它将区分大小写。