正在使用的语言:PHP
让我说这样的表达:
Ayala NOT ("Ayala Station" OR "Ayala Branch" OR "Joey Ayala")
而且我想提取以下单词:-Ayala-阿亚拉站-阿亚拉分公司和-Joey Ayala
我想检索用双引号“”括起来的所有短语以及上面示例中的独立词,例如Ayala,但实验失败
尝试过多个正则表达式
第一次尝试:
"([^"]+)"
-我知道此正则表达式是用于在双引号内引起单词/短语的正确正则表达式
第二次尝试:
~\w+(?:-\w+)*~
-此正则表达式将从给定的表达式或字符串中获取所有单词
第三次尝试:
结合上面的2次尝试"([^"]+)"|~\w+(?:-\w+)*~
-我能够为所需的输出生成用例,但将这两个用例结合在一起,就不会提取Ayala一词]]
示例游乐场regex101
第四次尝试:
尝试使用"([^"]+)"|\S+
,但其中包含特殊字符
我是否用正则表达式缺少某些东西?
正在使用的语言:PHP,我有一个这样的表达式:Ayala NOT(“ Ayala站”或“ Ayala分支”或“ Joey Ayala”),我想提取以下单词:-Ayala-Ayala站.. 。
替换项的右侧不应包含正则表达式定界符-正则表达式定界符应仅位于整个模式
要通过同一组索引捕获不同组的匹配,您也可以使用(?<=")\b[^"]+(?=")|\b(?!(?:NOT|OR)(?!-))\w+(?:-\w+)*
。此外,我会使用branch reset PCRE control verbs跳过不需要的单词(*SKIP)(*F)
。