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

时间:2018-12-08 17:57:47

标签: c# regex

我想确定单词是否以's或'm或'在c#中使用正则表达式结尾。

if (Regex.IsMatch(word, "/$'s|$'re|$'m/"))
   textbox1.text=word;

1 个答案:

答案 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()); -字符串的结尾。