我正在尝试隔离文本字符串中的百分比值。使用preg_match这应该很容易,但因为百分号在preg_match中用作运算符,所以我找不到任何示例代码。
$string = 'I want to get the 10% out of this string';
我最终想要的是:
$percentage = '10%';
我猜我需要的东西是:
$percentage_match = preg_match("/[0-99]%/", $string);
我确信有一个非常快速的答案,但解决方案是逃避我!
答案 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]
。