关于Python正则表达式的问题

2024-04-24 15:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

正则表达式如下所示:

r"""\s*(,@|[('`,)]|"(?:[\\].|[^\\"])*"|;.*|[^\s('"`,;)]*)(.*)"""

我的问题:

  1. [('`,)]['`,]不同吗?为什么要用[('`,)]而不是['`,]?你知道吗
  2. 我不理解正则表达式的这部分:"(?:[\\].|[^\\"])*"。它似乎匹配一个字符串,但我不知道为什么要使用组,也不知道正则表达式的这一部分是如何工作的。你知道吗

Tags: 字符串
1条回答
网友
1楼 · 发布于 2024-04-24 15:29:06
  1. [('`,)]['`,]是两个不同的字符集。第一个包括()字符。括号不会对任何内容进行分组,而是按字面意思进行匹配:

    >>> import re
    >>> re.findall(r"[('`,)]", '()')
    ['(', ')']
    >>> re.findall(r"['`,]", '()')
    []
    
  2. (?:...)创建一个非捕获组;它允许您对模式进行分组,而无需在输出中生成组。它只是意味着\..或任何不使用\"都可以匹配。

相关问题 更多 >