为什么re.compile(r"^[\s]+|[\s]+$")
匹配字符串" Hello "
中的结尾和前导空格,但是re.compile(r"^[\s]+[\s]+$")
不匹配?后者(没有|)对我来说似乎很好:
^[\s]+
-在搜索的字符串的开头应至少匹配一个尾随空格][\s]+$
-在搜索的字符串的末尾应至少匹配一个前导空格]但是为什么不起作用?我不明白按位OR(|)运算符如何产生差异。
我不明白按位OR(|)运算符如何使差异。
…因为不是按位或,否则-我们在这里使用正则表达式。正则表达式中的a|b
表示“匹配a或b”。因此,您的第一个regepx匹配前导或尾随空格。您的第二个正则表达式匹配……只是空格。从字符串的开头到结尾仅空格。要匹配空格,可以使用一些非空格,然后可以使用更多空格:r"^\s+\S+\s+$"
(\S
表示“除空白字符外的任何字符”)。