我正在修改使用preg_replace
的现有代码行$string = preg_replace('/(?<=\s)[^\s]{1,'.$x.'}(?=\s)/Su', ' ', $string);
我的基本理解是,用空格替换少于$ x个字符的单词。我已经搜索了正则表达式示例来做同样的事情,但它们看起来有很大的不同。有人可以简单地解释一下这个特殊的正则表达式到底做了什么吗?
无论如何,我要修改的内容基本上是让它按原样工作,除了排除数字。因此,单个数字不会被空格替换。
感谢
答案 0 :(得分:0)
有人可以简要解释一下这个特殊的正则表达式到底做了什么吗?
正则表达式: (?<=\s)[^\s]{1,'.$x.'}(?=\s)
<强>解释强>
(?<=\s)
查看空白和匹配零度。例如a |b
其中|
描绘零宽度。
[^\s]{1,'.$x.'}
匹配非空格字符1到$ x没有时间。可以使用\S
,同样的事情。
(?=\s)
前瞻一个空格并匹配零宽度,以便之前匹配的非空白字符后跟一个空格。例如a| b
。