Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
Php Regex找到一个单词,然后从考虑中排除特定单词_Php_Regex - Fatal编程技术网

Php Regex找到一个单词,然后从考虑中排除特定单词

Php Regex找到一个单词,然后从考虑中排除特定单词,php,regex,Php,Regex,我使用以下正则表达式查找单词: (? 如果要将单词开始/结束与@ (?<=\s)(?!(?:dog|cat)(?=\s))([\w\@\-]+)(?=\s) (?+1,但不等同于@ChuckUgwuh的正则表达式-如果它以@或-结尾,它将不匹配整个“单词”(不太可能),并且它将匹配字符串的开头/结尾(他的解决方案不会匹配).@TimPietzcker yeah u right.。他可以将\b更改为lookaround断言,以便在string@slier谢谢。关于@的环视断言,我该怎么做?

我使用以下正则表达式查找单词:

(?
如果要将单词开始/结束与
@

(?<=\s)(?!(?:dog|cat)(?=\s))([\w\@\-]+)(?=\s)

(?+1,但不等同于@ChuckUgwuh的正则表达式-如果它以
@
-
结尾,它将不匹配整个“单词”(不太可能),并且它将匹配字符串的开头/结尾(他的解决方案不会匹配).@TimPietzcker yeah u right.。他可以将\b更改为lookaround断言,以便在string@slier谢谢。关于@的环视断言,我该怎么做?!这一个类似:,甚至指定了限定词的最小长度。@hakre它似乎与我不太相似?!哦,是的,你接受的答案使用的是相同的regex特性。;)-它也只做长度检查,这里没有(你有一个或多个字符组成一个单词)@hakre没问题,但这个问题的答案并不能回答我的问题。你必须是一个正则表达式忍者才能得出两者之间的相关性,而正则表达式忍者不是我,因此我的问题。我写的是类似的,不是完全相同的。这只是一个链接,以防有人在这个问题上绊倒,并寻找替代方案。这并不是说你的问题会被忽略我做错了什么。
(?<=\s)(?!(?:dog|cat)(?=\s))([\w\@\-]+)(?=\s)