我有这个
$str = '"javascript:OpenWindow("order.aspx?order_id=161FA084AEF13FD7")"';
preg_match('/order\.aspx\?order_id=(.*\"\))/', $str, $a);
print_r($a);
输出预期:
161FA084AEF13FD7
但是
161FA084AEF13FD7")
请改善这个..
答案 0 :(得分:2)
试试这个正则表达式:
preg_match('/order\.aspx\?order_id=([^")]+)/', $str, $a);
[^")]+
是基于否定的正则表达式,匹配文本,直到找到"
OR )
,因此在"
或)
之前匹配标识符而不实际捕获它。
答案 1 :(得分:1)
作为另一种解决方案,您只需要移动结束捕获括号,因此它不包括引号和右括号字符。
如同,请使用:
/order\.aspx\?order_id=(.*)\"\)/
^
|
move this over here