Python Regex:使用按位OR匹配结尾和前导空格

问题描述 投票:0回答:1

为什么re.compile(r"^[\s]+|[\s]+$")匹配字符串" Hello "中的结尾和前导空格,但是re.compile(r"^[\s]+[\s]+$")不匹配?后者(没有|)对我来说似乎很好:

  • [^[\s]+-在搜索的字符串的开头应至少匹配一个尾随空格]
  • [[\s]+$-在搜索的字符串的末尾应至少匹配一个前导空格]

但是为什么不起作用?我不明白按位OR(|)运算符如何产生差异。

python regex bitwise-operators bitwise-or
1个回答
0
投票

我不明白按位OR(|)运算符如何使差异。

…因为不是按位或,否则-我们在这里使用正则表达式。正则表达式中的a|b表示“匹配a或b”。因此,您的第一个regepx匹配前导或尾随空格。您的第二个正则表达式匹配……只是空格。从字符串的开头到结尾仅空格。要匹配空格,可以使用一些非空格,然后可以使用更多空格:r"^\s+\S+\s+$"\S表示“除空白字符外的任何字符”)。

© www.soinside.com 2019 - 2024. All rights reserved.