【问题标题】:What does '\t' match to in python regular expression objects?'\t' 在 python 正则表达式对象中匹配什么?
【发布时间】:2019-08-07 23:01:20
【问题描述】:

我正在阅读 stackoverflow 问题 (https://stackoverflow.com/a/38162461/11783775) 的先前答案,其中提到了 '\t' 正则表达式代码,即与选项卡匹配的内容。出于我自己的好奇,我想做一个正则表达式对象来查看 '\t' 到底匹配什么,即有多少个空格,但我自己一无所获。

这是正则表达式对象:

tabTesterRegex = re.compile(r'''
    (\t)
''', re.VERBOSE)

这是我正在测试的一些文本(底线表示“a”和“b”之间的键盘制表符空间。)

text = '''
a b
a  b
a   b
a    b
a     b
a      b
a       b
a        b
a         b
a          b
a           b
a            b
a             b
a              b
a               b
a                b
a   b
'''

这是查找匹配项并将它们附加到列表的代码。

matchList = []
for match in tabTesterRegex.findall(text):
    matchList.append(match)

print(matchList)

我收到的输出是一个空列表,但我会假设 '\t' 会匹配特定数量的空格。

谢谢

【问题讨论】:

  • 我认为您的编辑器将底部的标签转换为空格。当我用制表符替换它时,我得到了['\t'] 作为返回。
  • 啊,是的。我做了同样的事情,它现在工作了!谢谢
  • \t 或 Tab 不是多个空格的快捷方式,它是一个 ASCII 字符,就像\n(回车)、“a”或“1”一样。

标签: python python-3.x


【解决方案1】:

\t 用于匹配tabs,与空格不同。如果你追加a\t\t\tb,你会得到:

a b
a  b
a   b
a    b
a     b
a      b
a       b
a        b
a         b
a          b
a           b
a            b
a             b
a              b
a               b
a                b
a           b

请注意,间距可能会因您的 IDE 设置而异。我可能错误地假设您根据前几行输出行使用空格,因为它们不等于制表符的长度,但 PyNoob 的评论表明您的编辑器可能正在转换制表符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2013-04-19
    • 2016-07-01
    • 2013-09-22
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多