寻找regex表达式(for php)多次替换模式,而不影响余数。实际需要的替换是反转某些数字,将10-1改为1-10,即数字为整数(可能大于1位数)的"number1“”破折号“"number2”应改为"number2“”破折号“"number1”。请注意,该模式不允许空格。此模式可以发生任何(未知)次数,包括0。
该文本可以被任何其他文本包围,包括数字、字母、空格、特殊字符。
示例
asdasdasd10-1 2-3asdasd 9-2 2 3XSSADSD
应改为
asdasdasd1-10 3-2asdasd 2-9 2 3XSSADSD
类似的
<asdasd 10 - 2 dfdsfsdfsdf 8-2
变到
<asdasd 10 - 2 dfdsfsdfsdf 2-8
发布于 2014-07-16 04:40:08
用这个:
$replaced = preg_replace('~(\d+)-(\d+)~', '\2-\1', $yourstring);
在演示中,请参见底部的替换。
解释
(\d+)
周围的括号将数字捕获到第1组-
(\d+)
周围的括号将数字捕获到第2组\2-\1
以第2组+连字符+第1组取代参考
https://stackoverflow.com/questions/24772316
复制相似问题