目前我正在使用php preg_replace来替换字符串的某些部分
12854827.12854827_IDS.0 12854827.12854827_892.0
12854827.12854827_IDS.0 12854827.12854827_892.0
这里我需要的输出是
12854827.IDS.0 12854827.892.0
12854827.IDS.0 12854827.892.0
但是preg_replace产生了输出
12854827.892.0
12854827.892.0
我在下面给出的php代码
preg_replace('/\..*_/', '.', $A)
我如何解决上述问题? &安培; 我如何使用php preg_replace替换最近的匹配单词?
答案 0 :(得分:0)
由于您使用的是数字替换,因此您可以使用以下内容:
preg_replace('/\.\d+_/', '.', $A);
答案 1 :(得分:0)
使用以下正则表达式捕获点字符(.
)和下划线(_
)之间的所有内容:
/\.([^_.]+)_/
故障:
/
- 开始分隔符
\.
- 匹配文字点(.
)字符[^_.]
- 匹配任何不是.
或_
一次或多次的字符的字符类_
- 匹配文字下划线(_
)字符/
- 结束分隔符 preg_replace()
语句应如下所示:
preg_replace('/\.([^_.]+)_/', '.', $A);
实际上,它说:“使用.
”替换_
和.
之间的所有内容。
输出:
12854827.IDS.0 12854827.892.0
12854827.IDS.0 12854827.892.0