gpt4 book ai didi

正则表达式匹配水平空白

转载 作者:行者123 更新时间:2023-12-04 07:16:32 24 4
gpt4 key购买 nike

我需要 Python2 中的正则表达式来匹配水平空白而不是换行符。

\s 匹配所有空格,包括换行符。

>>> re.sub(r"\s", "", "line 1.\nline 2\n")
'line1.line2'

\h 根本不起作用。
>>> re.sub(r"\h", "", "line 1.\nline 2\n")
'line 1.\nline 2\n'

[\t ] 有效,但我不确定是否缺少其他可能的空格字符,尤其是在 Unicode 中。如 \u00A0 (非中断空间)或 \u200A (头发空间)。以下链接中有更多空白字符。 https://www.cs.tut.fi/~jkorpela/chars/spaces.html
>>> re.sub(r"[\t ]", "", u"line 1.\nline 2\n\u00A0\u200A\n", flags=re.UNICODE)
u'line1.\nline2\n\xa0\u200a\n'

你有什么建议吗?

最佳答案

我最终使用了 [^\S\n] 而不是指定所有 Unicode 空格。

>>> re.sub(r"[^\S\n]", "", u"line 1.\nline 2\n\u00A0\u200A\n", flags=re.UNICODE)
u'line1.\nline2\n\n'

>>> re.sub(r"[\t ]", "", u"line 1.\nline 2\n\u00A0\u200A\n", flags=re.UNICODE)
u'line1.\nline2\n\xa0\u200a\n'

它按预期工作。

关于正则表达式匹配水平空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com