繁体   English   中英

C#正则表达式明确匹配字符串

[英]C# Regex explicitly match string

我只想匹配来自AZ和az的单词,最后加上一个可选的句点。 这是我到目前为止的代码:

return Regex.IsMatch(word, @"[A-Za-z]\.?")

这意味着以下内容应返回true: testtest.

以下应返回false: t3sttest...

现在,此正则表达式对所有内容都返回true。

试试这个regex

@"^[A-Za-z]+\.?$"

边界匹配器

  • ^表示行首
  • $表示行尾

贪婪的量词

  • [A-Za-z] +表示[A-Za-z],一次或多次

您的正则表达式只要求输入一个字母,后跟一个可选的期间。 由于您所有的单词都以字母开头,因此该正则表达式将返回true。

请注意,John Wesley王子的答案中的+号表示使用一个或多个字母,因此它将“吃掉”单词中的所有字母,并以非字母开头。 然后是\\。? 测试一个可选的时期。

我认为在这种情况下不需要^和$。

您可能还希望在正则表达式中包括连字符和单引号。 否则,您会遇到连字和紧缩字的问题。

可能会变得凌乱; 某些单词具有多个连字符:例如,“呼叫端口”或“纹章”。 很少有人会找到一个引号多的单词:“我会”表示“我会”。 它们非常罕见,您可能会忘记它们。 (糟糕!有一个以引号开头的单词... :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM