如何使用这种格式制作正则表达式"图像(数字,字符串)"?

时间:2017-11-07 07:47:10

标签: php regex

我想让正则表达式检测这种格式image(numeric, string)。例如:image(100, 'test')

我试过这个,但只检测image(numeric)

/image\((\d+)\)/

有关第二个参数和,的任何帮助吗?

另外我如何获得第二个参数?

3 个答案:

答案 0 :(得分:1)

您可以尝试以下模式:

/image\(\d+,\s*'.+?'\)/

我删除了捕获组,因为如果仅使用正则表达式进行验证则不需要它。

Demo

如果要捕获数字和文本,请使用捕获组:

$input = "code image(123, 'meh') more code";
if (preg_match("/image\((\d+),\s*'(.+?)'\)/", $input, $m)) {
    echo "match";
}
$number = $m[1];
$text = $m[2];

答案 1 :(得分:1)

试试这个:

image\((\d+), '(.+?)'\)

.匹配任何东西,其余的几乎是不言自明的。第1组是您的号码,第2组是字符串。

答案 2 :(得分:0)

你可以尝试这个:

image\(\s*\d+\s*\,\s*'.*'\s*\)