Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式:匹配模式,但不是特定单词_Regex - Fatal编程技术网

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}