使用正则表达式查找终止词



我想知道单词是以'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]-与sm匹配的字符类
  • )-非捕获组结束
  • $—字符串结束

最新更新