Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 如果匹配,则提取带括号的字符串(正则表达式)_Php_Regex - Fatal编程技术网

Php 如果匹配,则提取带括号的字符串(正则表达式)

Php 如果匹配,则提取带括号的字符串(正则表达式),php,regex,Php,Regex,字符串可以如下所示 poptype in ('01') and (a0='169'or a1='169'or a2='169'or a3='169'or a4='169'or a5='169'or a6='169'or a7='169'or a8='169'or a9='169') and (sku in ('67798240','67724312','67724313','67460442','67629434')) and (geo_code in ('D01365','D01353

字符串可以如下所示

poptype in ('01')
and (a0='169'or a1='169'or a2='169'or a3='169'or a4='169'or a5='169'or a6='169'or a7='169'or a8='169'or a9='169')  
and (sku in ('67798240','67724312','67724313','67460442','67629434'))  
and (geo_code in ('D01365','D01353','D01354','D01356','D01364','D01357','D01555'))
结果如下:

所需输出:

(a0='169'or a1='169'or a2='169'or a3='169'or a4='169'or a5='169'or a6='169'or a7='169'or a8='169'or a9='169')
如果字符串中存在“a0”或“a9”,我希望匹配第一个父括号中的整个单词。

这应该可以做到:

\(.*(?:a0|a9).*\)
退房地点: 基本上,如果在括号内找到a0或a9,则它与括号内的所有内容都匹配

如果字符串中存在“a0”或“a9”,我希望匹配第一个父括号中的整个单词

(\([^\(]+(a0 | a9)[^\)]+\)

这基本上应该是你想要的


寻找一个左大括号,后跟任意数量的非左大括号字符,然后是a0或a9,然后是另一端的右大括号的“镜像”。

您是否试图在这里解析某种编程语言?“需要一个完美的解决方案”-这是在进行大量研究和多次尝试时出现的。老板,我的问题太复杂了,这只是一个问题plz指南,如果你认为我的措辞不合适,请编辑问题。谢谢你的帮助。“无论如何,我只是试着详细解释我的问题”——一个措辞稍好一些的愿望清单,仍然只是一个愿望清单。我们这里没有愿望清单,我们不是圣诞老人的精灵。你至少需要向我们展示你尝试过的东西,展示你已经做出的努力。试一试。(可能需要一些改进,但作为一个起点,它应该可以。)感谢您的回答,但如果文本中没有“Enter”,则此正则表达式不起作用。我调整了正则表达式,以包括行brek和新行: