使用preg_match在字符串中查找百分比值

时间:2011-01-25 22:37:49

标签: php regex preg-match

我正在尝试隔离文本字符串中的百分比值。使用preg_match这应该很容易,但因为百分号在preg_match中用作运算符,所以我找不到任何示例代码。

$string = 'I want to get the 10%  out of this string';

我最终想要的是:

$percentage = '10%';

我猜我需要的东西是:

$percentage_match = preg_match("/[0-99]%/", $string);

我确信有一个非常快速的答案,但解决方案是逃避我!

5 个答案:

答案 0 :(得分:5)

if (preg_match("/[0-9]+%/", $string, $matches)) {
    $percentage = $matches[0];
    echo $percentage;
}

答案 1 :(得分:3)

使用正则表达式/([0-9]{1,2}|100)%/{1,2}指定匹配一个或两个数字。 |表示匹配模式数字100。

[0-99]您在[{1}}范围内匹配一个字符或已在您范围内的单个数字0-9

注意:这允许00,01,02,03 ... 09有效。如果您不想这样做,请使用强制一位数的9/([1-9]?[0-9]|100)%/

范围内的可选秒

答案 2 :(得分:2)

为什么不/\d+%/?简短又甜蜜。

答案 3 :(得分:1)

正则表达式应为/[0-9]?[0-9]%/

字符类中的范围仅限1个字符。

答案 4 :(得分:0)

$number_of_matches = preg_match("/([0-9]{1,2}|100)%/", $string, $matches);

匹配将位于$matches数组中,具体为$matches[1]