我已经尝试了几个正则表达式,但无法修复这个:
我需要一个输入线之前的标签开始(所以有一些空间)。
示例:
在夏天的几个月里,让你的小狗保持凉爽是至关重要的!尽量让他们远离炎热-保持房子凉爽,提供阴凉处,如果可以的话,为他们运行风扇。#狗#动物#夏天#狗护理#湿度#中暑#冷却#热衰竭#保持凉爽#HealthyPups
应为:
在夏天的几个月里,让你的小狗保持凉爽是至关重要的!尽量让他们远离炎热-保持房子凉爽,提供阴凉处,如果可以的话,为他们运行风扇。
狗#动物#夏天#狗护理#湿度#中暑#冷却#热衰竭#保持凉爽#HealthyPups
例如,如果文本中有主题标签,则不应添加空格(注意文本中的主题标签!):
在夏天的几个月里,让你的小狗保持凉爽是至关重要的!尽可能让他们远离炎热-保持房子凉爽,如果可以的话,为他们提供阴凉和风扇。#狗#动物#夏天#狗护理#湿度#中暑#冷却#热衰竭#保持凉爽#HealthyPups
如何使用Regex和PHP解决这个问题?
2条答案
按热度按时间qojgxg4l1#
您可以将一系列主题标签与regexp匹配:
#\w+
匹配单个主题标签\s*
匹配主题标签之间的可选空格+
之后,组匹配这些中的至少一个的序列$
匹配输入字符串的结尾。然后可以使用
preg_replace()
在此之前插入一个空行。oyt4ldly2#
匹配一个空格,后跟一个或多个主题标签序列,直到字符串结束。通过添加
1
作为第四个参数,通知preg_replace()
仅进行1次替换。代码:(Demo)
或者没有前瞻或替换限制:(Demo)
这两种方法都将用两个换行符干净地替换主题标签序列之前的空格。