0
可选匹配分组我有我想要使用PHP preg_match_all
匹配一个SQL字符串,我需要提取出匹配。它看起来像这样:在正则表达式
A BUNCH OF MEANINGLESS SQL And (Condition1 = 'thisvalue*' Or Condition1 = '8504577' Or Condition1 = 'somethingelse123*') And MORE MEANINGLESS SQL
我想抓住所有这些Condition1 = X
零件和不同区域使用它们,但它们只能在括号中的较大的副条件和Or
s的连接。
我的正则表达式看起来像这样(https://www.regex101.com/r/gepdq9/3):
/(\((Condition1 = '[\dA-Za-z]+\*?'(\sOr\s)?)+\))/
它较大的子条件正确匹配,但由于某些原因,matches[3]
项目,我认为应该捕捉所有的thisvalue*
,8504577
和somethingelse123*
值,只是捕获最后一个。
如何捕获所有这些匹配?
你是指[**:(?:\(|(?!\ A)\ G(Condition1 =('(?i)[[ alnum:]] +(? - i)\ *?')(or)?))'**](https://www.regex101.com/r/jOmglQ/1)? – revo
@ revo--好,但我想捕获整个子查询,所以我可以从原始查询中删除它 – user101289
整个匹配可以通过'$ matches [ 0]'同时处理'preg_match_all'的输出数组。 – revo