使用php,我想在句号后面添加一个空格,而不要添加一个空格。 我需要使用什么正则表达式来匹配以下文本中的第一个句号,而不是第二个句号?
输入:hello world.how are you. doing ?
输出:hello world. how are you. doing ?
答案 0 :(得分:0)
您可以使用此正则表达式实现相同的目的。
(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])
说明:
(?<=[a-z])(?=\d)
->此正则表达式表示正面和反面,以标记一个点,该点前面有字母,后面有数字(?<=\d)(?=[a-z])
->与此类似,此正则表达式正面表示正面,背面表示正面以标记一个点,该点前面有数字,后面有字母它用空格替换该标记,从而为您提供所需的输出。
这是相同的示例php代码,
$str = 'hello13 world how are 12you';
$str = preg_replace('/(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])/i', ' ', $str);
echo $str;
根据需要打印以下输出,
hello 13 world how are 12 you
答案 1 :(得分:0)
您可以使用preg_match_all()
和implode()
这样的空格来尝试这种方式。
<?php
$string = "hello13 world how are 12you";
preg_match_all('/([0-9]+|[a-zA-Z]+)/',$string,$matches);
print_r($matches[0]);
echo implode(' ', $matches[0]);
?>