Regex 正则表达式:匹配模式,但不是特定单词
是否有可能编写一个正则表达式来匹配Regex 正则表达式:匹配模式,但不是特定单词,regex,Regex,是否有可能编写一个正则表达式来匹配[a-zA-Z]{2,4},但不匹配单词test?或者我需要分几个步骤来过滤它吗 当然,你可以用一个 我不知道您在做什么时是否需要它,但请注意,如果您要检查整个输入是否与该模式匹配,则可能需要使用开始和结束定位(^和$)。否则,它可能会匹配类似于ouaeghAEtest的内容,因为它仍然会在非“test”的地方找到四个字符 只是一个想法,没有使用真正的代码来尝试提示:始终指定您使用的语言和正则表达式引擎;如果您计划替换字符串中每个2-4个字符的单词,您也应该提到
[a-zA-Z]{2,4}
,但不匹配单词test
?或者我需要分几个步骤来过滤它吗 当然,你可以用一个
我不知道您在做什么时是否需要它,但请注意,如果您要检查整个输入是否与该模式匹配,则可能需要使用开始和结束定位(^
和$
)。否则,它可能会匹配类似于ouaeghAEtest
的内容,因为它仍然会在非“test”的地方找到四个字符
只是一个想法,没有使用真正的代码来尝试提示:始终指定您使用的语言和正则表达式引擎;如果您计划替换字符串中每个2-4个字符的单词,您也应该提到这一点,因为根据解决方案,“测试”的各个部分也可能匹配。但是还有其他更有用的解决方案不,它只是用于匹配这样的字符串:
foobar.aaa.dsf
但是也有类似于foobar.test.dsf的字符串我不想匹配。因此,这并不是关于替换什么东西。另外,对于多个单词的排除:(?![test1,test2])[a-zA-Z]{2,4}
@shrx不太可能。您使用了一个字符类,因此只有当第一个字符是列出的字符之一时,前瞻才会与第一个字符匹配。()因此它将拒绝任何以t
、e
、s
、1
、、
或2
开头的单词。使用管道“或”操作符:(?!test | foo | bar)[a-zA-Z]{2,4}
()
(?!test)[a-zA-Z]{2,4}
[A-Za-su-z][A-Za-df-z]{0,1}[A-Za-rt-z]{0,1}[A-Za-su-z]{0,1}