我想知道单词是以's或'm结尾,还是在c#中使用正则表达式。
if (Regex.IsMatch(word, "/$'s|$'re|$'m/"))
textbox1.text=word;
/$'s|$'re|$'m/
.NET正则表达式匹配3个替代项:
/$'s
-/
位于字符串末尾,'s
应紧随其后(这永远不会匹配,因为字符串末尾后不能有文本($'re
-字符串的末尾,然后必须跟在're
后面(同样,永远不会匹配($'m/
-后面跟着'm/
的字符串的末尾(同样,永远不会匹配(
在.NET正则表达式中,不使用正则表达式分隔符,因此第一个和最后一个/
被视为引擎试图匹配的文字字符。
$
锚用信号通知字符串的结束,在它之后使用任何东西都会使模式不匹配任何字符串(好吧,除非你在它之后有一个尾随的n
,但这是一种很少引起任何麻烦的边缘情况(。仅供参考:要匹配.NET正则表达式中字符串的末尾,请使用z
。
你试图写的是
Regex.IsMatch(word, "'(?:s|re|m)$")
或者,如果您将单个字符替换项放入单个字符类中:
Regex.IsMatch(word, "'(?:re|[sm])$")
请参阅regex演示。
详细信息
'
-单引号(?:
-非捕获组的启动:re
-re
子字符串|
-或[sm]
-与s
或m
匹配的字符类
)
-非捕获组结束$
—字符串结束