preg_match - 从函数中获取数值

时间:2011-07-26 12:46:05

标签: php regex preg-match web-scraping

我想从transaction函数中获取值。

示例:

$response = "transaction(12346675); $('#Tracking').html('<script> random random  random</script>');";

我希望获得12346675价值。怎么办?

我尝试了preg_match('/([\w\_\d]+)\(([\w\W]*)\)/', $response, $match);,但它似乎无法正常工作。

由于

4 个答案:

答案 0 :(得分:3)

preg_match('/^transaction\((\d+)\)/', $str, $m);
print_r($m);

广义模式:

  • ^\s*\w+\s*\(\s*(\d+)\s*\)
  • 如果函数名称是PHP标识符:
    ^\s*[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\s*\(\s*(\d+)\s*\)

有关类似问题,请参阅:Regex Help, Search for function names and return them

答案 1 :(得分:0)

reg_match('/\D+\((\d+)\)\.*/', $response, $match);

答案 2 :(得分:0)

获取第一个单词后的数字,前提是它括在括号中:

preg_match('/\w+\((\d+)\)/', $response, $match);

答案 3 :(得分:0)

如果您正在寻找该行的第一个数字,则无需将其与表达式的后半部分复杂化:

preg_match('/(\d+)/', $response, $match);

这是您的第一个号码的简单匹配。