Regex 捕获文本的某些不同部分并替换为另一部分
PHP中有一个不推荐使用的函数,因此,我需要用它们的替换项替换所有函数。由于某些参数具有不同的值,因此我需要使用regex find and replace方法来实现这一点 例如,我有两个功能:Regex 捕获文本的某些不同部分并替换为另一部分,regex,Regex,PHP中有一个不推荐使用的函数,因此,我需要用它们的替换项替换所有函数。由于某些参数具有不同的值,因此我需要使用regex find and replace方法来实现这一点 例如,我有两个功能: mysql_result($one,0,"val1") mysql_result($two,0,"val2") 如何编写正则表达式将这两个表达式转换为这两个表达式 $one["val1"] $two["val2"] 目前我有(mysql\u result\()*\“\),但这只匹配函数的结尾部分。您
mysql_result($one,0,"val1")
mysql_result($two,0,"val2")
如何编写正则表达式将这两个表达式转换为这两个表达式
$one["val1"]
$two["val2"]
目前我有
(mysql\u result\()*\“\)
,但这只匹配函数的结尾部分。您可以使用此模式,然后替换为$1[“$2”]
:
编辑:
$string = array('mysql_result($one,0,"val1")', 'mysql_result($two,0,"val2")');
$pattern = '/.*?\(([^,]+).*?"([^"]+).*/';
print_r( preg_replace($pattern, '$1["$2"]', $string ));
您可以使用此模式,然后替换为
$1[“$2”]
:
编辑:
$string = array('mysql_result($one,0,"val1")', 'mysql_result($two,0,"val2")');
$pattern = '/.*?\(([^,]+).*?"([^"]+).*/';
print_r( preg_replace($pattern, '$1["$2"]', $string ));
使用以下正则表达式:
(mysql\u result\()(.*),(.*),(.*)(.*)(\)
并将其替换为以下内容:
\2[\4]
使用以下正则表达式:(mysql\u result\()(*),(*),(*),(*)(\)
preg_replace('/mysql_result\(([^,]*),[^,]*,([^)]*)\)/', '$1[$2]', $string);
并将其替换为以下内容:
\2[\4]
没有必要使用正则表达式,因为您需要手动编辑它们以使用准备好的语句。有时,您不应该懒惰:)没有必要使用正则表达式,因为您需要手动编辑它们以使用准备好的语句。有时,您不应该懒惰:)谢谢,但替换值如何?您能试试吗?我不知道明白你的意思…它也可以…谢谢,但是替换值呢?你能试试吗?我不明白你的意思…它也可以…这很有效,但在函数之后还捕获了以下内容。例如:mysql\u结果($sql,0,“id”)。“>$edit]");代码>这很有效,但在函数之后还捕获了以下内容。例如:mysql\u结果($sql,0,“id”)。“'>$edit]”代码>
preg_replace('/mysql_result\(([^,]*),[^,]*,([^)]*)\)/', '$1[$2]', $string);