我需要删除大量文本,或者简单地用""替换。
以下是文字的摘录
$prep->bindValue(':PYOtherExpensesAmt',$summaryData['*PYOtherExpensesAmt*'])?$row['PYOtherExpensesAmt']:''));
$prep->bindValue(':CYOtherExpensesAmt',$summaryData['*CYOtherExpensesAmt*'])?$row['CYOtherExpensesAmt']:''));
我需要替换以?$row
开头并以))
结尾的文本块。
所以第一个替换的例子是:
$prep->bindValue(':PYOtherExpensesAmt',$summaryData['PYOtherExpensesAmt']);
我尝试过以下正则表达式:
([?][$row], [))])
有关如何删除这些文本块的任何提示都是正则表达式吗?
答案 0 :(得分:3)
这是一个符合您的模式的正则表达式:
\?\$row.*?\)\)
说明:反斜杠(\
)将转义前面的字符,以便引擎按字面意思搜索该字符。这是必需的,因为?
,$
和)
在regexp语法中已经具有特殊含义。最后,.*?
部分意味着它将匹配"懒惰"中任何字符(*
)的零个或多个(.
)个实例。方式(?
),因此停在第一个))
。学习正则表达式语法的绝佳资源:regular-expressions.info
然后,正如您猜测的那样,您应该用空字符串替换所有匹配项以删除它们。