[英]C# Regex explicitly match string
我只想匹配来自AZ和az的单词,最后加上一个可选的句点。 这是我到目前为止的代码:
return Regex.IsMatch(word, @"[A-Za-z]\.?")
这意味着以下内容应返回true: test
, test.
。
以下应返回false: t3st
, test..
, .
, 。
现在,此正则表达式对所有内容都返回true。
试试这个regex
:
@"^[A-Za-z]+\.?$"
边界匹配器
贪婪的量词
您的正则表达式只要求输入一个字母,后跟一个可选的期间。 由于您所有的单词都以字母开头,因此该正则表达式将返回true。
请注意,John Wesley王子的答案中的+号表示使用一个或多个字母,因此它将“吃掉”单词中的所有字母,并以非字母开头。 然后是\\。? 测试一个可选的时期。
我认为在这种情况下不需要^和$。
您可能还希望在正则表达式中包括连字符和单引号。 否则,您会遇到连字和紧缩字的问题。
可能会变得凌乱; 某些单词具有多个连字符:例如,“呼叫端口”或“纹章”。 很少有人会找到一个引号多的单词:“我会”表示“我会”。 它们非常罕见,您可能会忘记它们。 (糟糕!有一个以引号开头的单词... :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.