Skip to main content
 首页 » 编程设计

c#之简单的正则表达式无法识别字符“e”-为什么

2024年01月22日25linjiqin

我写了一个非常简单的正则表达式,需要匹配下一个模式:
word.otherWord
-Word必须至少包含2个字符,并且不能以数字开头。

我写了下一个表达式:

[a-zA-Z][a-zA-Z](.[a-zA-Z0-9])+ 


我使用Regex测试仪对其进行了测试,它似乎在大多数情况下都可以正常工作,但是当我尝试使用一些以'e'结尾的输入时,它就无法正常工作。

例如:
Hardware.Make不起作用,但 Hardware.Makee可以正常工作,为什么?我该如何解决?

请您参考如下方法:

这是因为您的正则表达式会寻找长度为偶数的输入。

您有两个[a-zA-Z][a-zA-Z]匹配的字符,然后又有一个(.[a-zA-Z0-9])匹配的另外两个字符作为一个组重复了一次或多次(由于+)。

您可以在这里看到它:http://regex101.com/r/fW2bC1

我认为您需要:

[a-zA-Z]+(\.[a-zA-Z0-9]+)+