寻找正则表达式(对于php)多次替换模式而不影响其余部分。所需的实际替换是反转某些数字,10-1应改为1-10,即" number1" "破折号" "数字2"其中数字是整数(可能有多于1位数)应替换为" number2" "破折号" "数字1&#34 ;.请注意,该模式不允许空格。此模式可以发生任何(未知)次数,包括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
答案 0 :(得分:3)
使用此:
$replaced = preg_replace('~(\d+)-(\d+)~', '\2-\1', $yourstring);
在the demo中,请参阅底部的替换。
<强>解释强>
(\d+)
周围的括号将数字捕获到第1组-
(\d+)
周围的括号将数字捕获到第2组\2-\1
替换为第2组+连字符+第1组<强>参考强>