首先,如果从标签中看不清楚,我在PHP中这样做 - 但这可能并不重要。
我有这段代码:
$inputStr = strip_tags($inputStr);
$inputStr = preg_replace("/[^a-zA-Z\s]/", " ", $inputStr);
这似乎完全删除了所有HTML标签和几乎所有特殊和非字母字符。一个问题是,由于某种原因,它不会过滤掉carraige返回/换行(只是组合)。
如果我添加这一行:
$inputStr = preg_replace("/\s+/", " ", $inputStr);
然而,最后,它的效果很好。有人能告诉我:
答案 0 :(得分:2)
\h
代替\s
来排除水平空格。\s+
)的每个序列。”preg_replace("/[^A-Za-z]+/", " ", ...)
可能会这样做。答案 1 :(得分:1)
\s
匹配\n
。答案 2 :(得分:1)
你的第一个正则表达式是删除所有不是字母或空格的字符。 CRLF是空格,因此不会被过滤掉。
第二个是用空格字符替换空格。从本质上讲,它将空白序列压缩到一个空间中(由于量词是贪婪的)。
我建议从第一个正则表达式中删除\s
,看看是否有效。