正则表达式 preg_replace php
regex preg_replace php
我有这样的随机变量:
地带@ 489.000
地带 1 @ 489.000
地带 2 @ 589.000
我需要的输出是:
'anything @ ' 489.000
之后的唯一数字
所以给我输出:
489.000
489.000
589.000
使用 php 正则表达式很热吗?
$string = ' Strip 1 @ 489.000'; $pattern = ' /(\s\S) @ (\d+)/i'; $replacement = ''; echo preg_replace($pattern, $replacement, $string);
要获取所有匹配项,请使用
if (preg_match_all('/\S\s@\s+\K\d+(?:\.\d+)?/', $text, $matches)) {
print_r($matches[0]);
}
要获得第一个匹配项,请使用
if (preg_match('/\S\s@\s+\K\d+(?:\.\d+)?/', $text, $match)) {
print_r($match[0]);
}
详情
\S
- 非空白字符
\s
- 一个空格
@
- 一个 @
字符
\s+
- 1+ 个空格
\K
- 匹配重置运算符
\d+
- 1+ 位数
(?:\.\d+)?
- 一个点和 1+ 个数字的可选序列。
参见regex demo。
我有这样的随机变量: 地带@ 489.000 地带 1 @ 489.000 地带 2 @ 589.000
我需要的输出是: 'anything @ ' 489.000
之后的唯一数字所以给我输出: 489.000 489.000 589.000
使用 php 正则表达式很热吗?
$string = ' Strip 1 @ 489.000'; $pattern = ' /(\s\S) @ (\d+)/i'; $replacement = ''; echo preg_replace($pattern, $replacement, $string);
要获取所有匹配项,请使用
if (preg_match_all('/\S\s@\s+\K\d+(?:\.\d+)?/', $text, $matches)) {
print_r($matches[0]);
}
要获得第一个匹配项,请使用
if (preg_match('/\S\s@\s+\K\d+(?:\.\d+)?/', $text, $match)) {
print_r($match[0]);
}
详情
\S
- 非空白字符\s
- 一个空格@
- 一个@
字符\s+
- 1+ 个空格\K
- 匹配重置运算符\d+
- 1+ 位数(?:\.\d+)?
- 一个点和 1+ 个数字的可选序列。
参见regex demo。