我需要创建一个正则表达式来验证任何不带点的文本或任何以 .gt
结尾的文本或 .lt
.超过一个点的任何文本也应该是无效的。
anytext // valid
anytext.gt // valid
anytext.lt // valid
anytext.xx // invalid
anytext.xx.gt // invalid
我创建了这个:^.*(\.(gt|lt)|(?<!\..*))$
它工作得很好,除了它接受超过 1 个点,所以类似于 foo.bar.gt
。正在验证,不应该。
最佳答案
您可以匹配一个或多个单词字符 \w+
或在字符类中指定您要匹配的字符并以可选的点结尾,后跟 gt 或 lt:
解释
^
在行首声明位置\w+
一个或多个 word characters(?:
非捕获组\.[gl]t
匹配一个点和g
或l
后跟t
<
)?
关闭非捕获组并使其可选$
在行尾断言位置
关于regex - 如果单个字符不止一个则不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49822617/