我必须匹配sql LIKE
运算符,它的参数中包含%
。
我想在php(PCRE正则表达式)中得到运算符的参数,没有%
我要匹配的字符串可以是
field LIKE %?
field LIKE ?%
field LIKE %?%
?
是将被替换的参数。
我的问题是%
可能位于?
的右侧,或位于其左侧,或两者兼而有之,我必须至少匹配一次。
我尝试使用\s*(%?\?%?)
仅匹配参数,但它也适用于没有%
答案 0 :(得分:2)
您可以使用此%(\?)|(\?)%
说明:
%(\?)
查找%
左侧(匹配%?和%?%)(\?)%
查找%
右侧(匹配?%和%?%)涵盖所有需要的案例。
请参阅Demo
编辑: -
如果您只想替换?
使用(?<=%)(\?)|(\?)(?=%)