Mem*_*mir 8 regex unicode python-2.7 python-unicode
我需要Python2中的正则表达式才能匹配水平白色空格而不是换行符.
\ s匹配包括换行符在内的所有空格.
>>> re.sub(r"\s", "", "line 1.\nline 2\n")
'line1.line2'
Run Code Online (Sandbox Code Playgroud)
\ h根本不起作用.
>>> re.sub(r"\h", "", "line 1.\nline 2\n")
'line 1.\nline 2\n'
Run Code Online (Sandbox Code Playgroud)
[\ 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'
Run Code Online (Sandbox Code Playgroud)
你有什么建议吗?
我最终使用[^\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'
Run Code Online (Sandbox Code Playgroud)
它按预期工作.
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |