我的字符串是
$str='insert into employees values('
我想忽略插入和(之间的所有内容。我想跳过员工价值我应该如何在正则表达式中跳过它?< / p>
输入字符串:
insert into employees values( nextval( 'public.scheduled_charges_id_seq' ),'shrenik', 555, NULL)
必需的输出:
insert into employees values( nextval( 'public.scheduled_charges_id_seq' ),'XXX', XXX, NULL);
我试过了:
([0-9]|\'.*\')
我想替换字符串中的机密值以插入到模式中的机密值应该限制在从插入到员工(到它结束的位置)的大括号中。 你可以帮我吗? 提前致谢
答案 0 :(得分:0)
这个怎么样:
正则表达式:
\),\s?'([^']+)',\s?([0-9]+)
工作正则表达式示例:
PHP:
$str = "insert into employees values( nextval( 'public.scheduled_charges_id_seq' ),'XXX', 555, NULL);";
preg_match("/\),\s?'([^']+)',\s?([0-9]+)/", $str, $matches);
echo $matches[1] . ", " . $matches[2];
输出:
XXX, 555
或者如果你要替换这些值,你可以这样做:
正则表达式:
(?<=,)\s?[^,]+,\s?[^,]+(?=,)
工作正则表达式示例:
PHP:
$str = "insert into employees values( nextval( 'public.scheduled_charges_id_seq' ),'XXX', 555, NULL);";
echo preg_replace("/(?<=,)\s?[^,]+,\s?[^,]+(?=,)/", "'YYY', 999", $str);
输出:
insert into employees values( nextval( 'public.scheduled_charges_id_seq' ),'YYY', 999, NULL);