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
Regex 捕获文本的某些不同部分并替换为另一部分_Regex - Fatal编程技术网

Regex 捕获文本的某些不同部分并替换为另一部分

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\()*\“\),但这只匹配函数的结尾部分。您

PHP中有一个不推荐使用的函数,因此,我需要用它们的替换项替换所有函数。由于某些参数具有不同的值,因此我需要使用regex find and replace方法来实现这一点

例如,我有两个功能:

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);