php 正则表达式 提取,使用正则表达式从PHP中的字符串中提取文本

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在用regex在php中挣扎,以从字符串中提取函数参数.我正在解析php中的javascript文件,并想从一行中提取2个函数参数.以下是线条外观的示例:

"Backbone.Radio( 'comments ').trigger("added:comment " ,function(){});"

我想从这一行中提取注释一词并添加:comment,但不带任何空格或引号.

我尝试过:

$arrMatches = array();

$strRegEx = "/\\(\\s*['\"]\\s*([^)]+?)\\s*['\"]\\s*/";

$nMatches = preg_match_all($strRegEx, $strLine, $arrMatches);

但这会给我类似:(”comments’和(“” added:comment“

我将对如何解决此问题有所帮助.

解决方法:

您可以使用:

$regex = '~\(\h*([\'"])(.+?)\h*(?!\\\\)(?=\1)~';

$string = "Backbone.Radio( 'comments ').trigger(\"added:comment \" ,function(){});";

preg_match_all($regex, $string, $matches);

print_r($matches[2]);

/*

Array

(

[0] => comments

[1] => added:comment

)

*/

?>

正则表达式查找单引号/双引号,捕获它们并查找下一个未转义的单引号/双引号.参见a demo on regex101.com.

警告:虽然在这个特定示例中可能会起作用,但是通常这是使用正则表达式的最后一种方法-您是否考虑过使用解析器?

标签:php,regex

来源: https://codeday.me/bug/20191118/2026408.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值