尝试从 html 文档中的名称集合中删除空格和制表符时遇到问题。
前任:
FU BAR
RE BAR NULL
我需要我的回应只是:
FU BAR RE BAR NULL
我一直在尝试:
[^A-Z]+([[A-Z]{1,}\s]+)[\s\r\n\t]+
最后仍然留下一些零散的空格或标签。有什么建议吗?
尝试从 html 文档中的名称集合中删除空格和制表符时遇到问题。
前任:
FU BAR
RE BAR NULL
我需要我的回应只是:
FU BAR RE BAR NULL
我一直在尝试:
[^A-Z]+([[A-Z]{1,}\s]+)[\s\r\n\t]+
最后仍然留下一些零散的空格或标签。有什么建议吗?
为什么不直接使用:s/\s+/ /g
?
哦,刚刚意识到这并没有考虑到前导和尾随空格。您也可以通过首先通过此正则表达式运行输入来处理这些问题,然后是上面的那个:
s/^\s+|\s+$//
\s+
用一个空格替换怎么样?(假设我们不受限于单行匹配)。
(如果我们使用一些逐行的正则表达式替换,例如一些 Unix 工具,我们会删除所有前导和尾随空格,用单个空格替换内部空格区域,并删除空行或仅包含空格的行.)
您是否尝试将其应用于 HTML 文档的某些部分,同时在其他区域保留空白?如果是这样,请使用反映此要求的示例更新您的问题。
如果您使用的是 Java,
String normalizeSpace = str.replaceAll("\\s+", " ");
Commons Lang 2.6中的StringUtils类包含normalizeSpace
具有相同功能的方法(包括控制字符,char <= 32)。