$text_expression = 'word1 word2 "phrase 1" "phrase 2" -word3 -word4 -"phrase \"hello\" 3" -"phrase 4"';
我想搜索包含(word1或word2或'短语1'或'短语2')并且不包含(word3或word4或'短语“ hello” 3'或'短语4')的字符串
与上面的$ text_expression等效的正则表达式将是什么?产生像
[包含] =>数组(
[0] => word1
[1] => word2
[2] => phrase 1
)
[不包含] =>数组(
[0] => word3
[1] => word4
[2] => phrase "hello" 3
)
ps:如果要简化字符串,我可以用另一种方式来表示(例如,使用其他字符代替引号和破折号)
最佳答案
可以使用正则表达式进行负匹配,但是非常复杂。也许您想先搜索第一部分,然后使用第二部分过滤结果。您使用|
“或”正则表达式,因此首先查找“ word1 | word2 |短语1 |短语2”,然后删除与“ word3 | word4 |短语“ hello” 3 |短语4”匹配的结果(将单词转义)和加入|
之前的短语可能是个好主意)。
关于php - 正则表达式基本帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3551507/