我有两个正则表达式字符串:
[^'"0-9+-%*/<>!=&|]
(['"])(?:\1|.)*?1
第一个查找除了列出的字符之外的任何字符。第二个查找引号之间的任何内容,包括引号。
我想合并这些,这样我就可以找到与这些字符或引号之间的字符组匹配的任何字符,排除找到的匹配项,并返回其他所有字符。例如,在下面的短语中,我希望它只返回粗体字符。
你好世界 "这是一个测试">
"另一个测试";5 x 4
"这有一个转义的引号,不要在里面">蓝色男孩
"这有一个单独的引号,但没有在引号开始时结束用双引号">
你好
28+2/10*3abc
"Lorem ipsum dolor";坐着"amet";
这可能吗?如有任何帮助,我们将不胜感激。
您可以使用类似的PCRE模式
(?:(['"])(?:\1|.)*?1|d+(?:s*[*/+x-]s*d+)*)(*SKIP)(*F)|(?=S)[^'"0-9+-%*/<>!=&|]+
查看regex演示
详细信息
(?:(['"])(?:\1|.)*?1|d+(?:s*[*/+x-]s*d+)*)(*SKIP)(*F)
-"
或'
个字符之间的子字符串,或1个以上数字,后面有0个或多个/
、+
、-
、*
或x
,用0个以上空格括起来,然后是1个以上的数字,将丢弃匹配,并从故障位置搜索下一个匹配|
(?=S)
-下一个字符必须是非空白字符[^'"0-9+-%*/<>!=&|]+
-1个或多个字符,而不是在否定字符类中指定的字符