我想确定单词是否以's或'm或'在c#中使用正则表达式结尾。
if (Regex.IsMatch(word, "/$'s|$'re|$'m/"))
textbox1.text=word;
答案 0 :(得分:0)
/$'s|$'re|$'m/
.NET正则表达式匹配3个替代方案:
/$'s
-/
在字符串末尾,之后应该跟随's
(这将永远不匹配,因为在字符串末尾不能有任何文本)$'re
-字符串的结尾,然后必须紧跟're
(再次,将永远不会匹配)$'m/
-后面跟着'm/
的字符串结尾(同样,永远不会匹配)。在.NET正则表达式regex delimiters are not used中,第一个/
和最后一个$
被视为引擎尝试匹配的文字字符。
\n
锚指示字符串的结尾,并在其使模式不匹配任何字符串后使用任何符号(嗯,除非您在其后跟一个\z
,但这是一个极端的情况很少引起任何麻烦)。仅供参考:要match the very end of string in a .NET regex,请使用Regex.IsMatch(word, "'(?:s|re|m)$")
。
您试图写的是
Regex.IsMatch(word, "'(?:re|[sm])$")
或者,如果您将单个字符替代项放在单个character class中:
'
请参见regex demo。
详细信息
(?:
-单引号re
-non-capturing group的开头:
re
-|
子字符串[sm]
-或s
-匹配m
或)
$
-非捕获组的结尾this.imagePanel = new ImagePanel();
FrameImagePanel.add(this.imagePanel);
FrameImagePanel.setSize(this.imagePanel.getWidth(), this.imagePanel.getHeight());
-字符串的结尾。