如何将{number})
替换为\n{number})
说我有类似的东西
1) test string testing new string. 2) that is also a new string no new line. 3) here also no new lines.
输出应该是这样的
1) test string testing new string.
2) that is also a new string no new line.
3) here also no new lines.
我怎样才能使用正则表达式?
答案 0 :(得分:7)
$outputstring = preg_replace('/([0-9]+)\)/', "\n$1)", $inputstring);
匹配任意数字后跟文字)
,替换换行符后跟这些数字后跟)
。
如果你希望实际上在你的示例输出之间实际上是一个空行,你实际上想要插入两个换行符(因为你需要一个换行符来结束带有文本的行,然后另一个要添加空白行线)。如果是这种情况,只需在第二个参数中设置\n\n
而不是\n
。
另请注意,如果字符串以编号点开头,则会在字符串的开头添加换行符,因此如果您不想使用前导换行符,可能需要修改字符串。
答案 1 :(得分:2)
$result = preg_replace('/(?<!\A|\n\n)(?=[0-9]+\))/m', '\n\n', $subject);
将与Dav的解决方案做同样的事情,但也会在字符串的开头留下数字(在本例中为1)
)。如果在它们之前已有两个换行符,它也会留下数字。
答案 2 :(得分:1)
用户preg_replace
功能
$ str =“1)测试字符串测试新字符串.2)这也是一个新字符串没有新行.3)这里也没有新行。”;
print preg_replace("/(\d+\))/","\n$1" , $str);