如何使用\ n {number}预先放置{number})

时间:2010-04-29 08:41:34

标签: php regex

如何将{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.

我怎样才能使用正则表达式?

3 个答案:

答案 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);