这个序列是什么';[A-Z][A-Z]';在python正则表达式中是什么意思?

这个序列是什么';[A-Z][A-Z]';在python正则表达式中是什么意思?,python,regex,Python,Regex,我试图在python的正则表达式中搜索一些模式 我们知道,如果我们使用模式,'[A-Za-z]+',它意味着查找包含大写字母A到z或小写字母A到z的字符序列。 所以我的一行代码(后面是答案)是 当我尝试另一种模式时,“[[A-Z][A-Z]]+”返回一个空列表,下面是一行代码 >>> re.findall('[[A-Z][a-z]]+', 'This is my area!') [] 所以,当我在一个字符集中使用两个序列时,会创建什么模式? 请导游 引擎将把[[A-Z][A-

我试图在python的正则表达式中搜索一些模式

我们知道,如果我们使用模式,'[A-Za-z]+',它意味着查找包含大写字母A到z或小写字母A到z的字符序列。 所以我的一行代码(后面是答案)是

当我尝试另一种模式时,“[[A-Z][A-Z]]+”返回一个空列表,下面是一行代码

>>> re.findall('[[A-Z][a-z]]+', 'This is my area!')
[]
所以,当我在一个字符集中使用两个序列时,会创建什么模式?
请导游

引擎将把
[[A-Z][A-Z]]+
视为:

  • [[A-Z]
    作为允许任何大写字母(A-Z)或
    [
    的第一个字符类。将其视为
    [\[A-Z]
    而不是
    [
    转义
  • [a-z]
    作为第二个字符类,允许任何小写字母(a-z)
  • ]+
    允许一个或多个
    ]
因此,它将匹配
[b]
Aa]
Aa\\\\\\\\\\\\\\\\]
等,并且与您的字符串“这是我的区域”不匹配

要进一步使用它,您可以试试这个

方括号嵌套:

<> >为了更好地理解方括号如何嵌套在正则表达式中,请考虑另一个例子<代码> [[ABC] ] < /代码>

一旦找到表示字符类开始的开始方括号(
[
),则所有后续的开始方括号将被视为转义的
\[
,直到遇到表示字符类结束的结束方括号为止

要进行测试,请查看以下示例:

  • [[[ABC]]
    [\[ABC]
    相同,后跟
    ]{2}
    。示例
    A]

  • [[[[ABC]]]
    [\[ABC]
    相同,后跟
    ]{3}
    。示例
    []]

  • [[ABC]]
    [\[ABC]
    相同,后跟
    ]{4}
    。示例
    A]]]


希望这有帮助

引擎将把
[[A-Z][A-Z]]+
视为:

  • [[A-Z]
    作为允许任何大写字母(A-Z)或
    [
    的第一个字符类。将其视为
    [\[A-Z]
    而不是
    [
    转义
  • [a-z]
    作为第二个字符类,允许任何小写字母(a-z)
  • ]+
    允许一个或多个
    ]
因此,它将匹配
[b]
Aa]
Aa\\\\\\\\\\\\\\\\]
等,并且与您的字符串“这是我的区域”不匹配

要进一步使用它,您可以试试这个

方括号嵌套:

<> >为了更好地理解方括号如何嵌套在正则表达式中,请考虑另一个例子<代码> [[ABC] ] < /代码>

一旦找到表示字符类开始的开始方括号(
[
),则所有后续的开始方括号将被视为转义的
\[
,直到遇到表示字符类结束的结束方括号为止

要进行测试,请查看以下示例:

  • [[[ABC]]
    [\[ABC]
    相同,后跟
    ]{2}
    。示例
    A]

  • [[[[ABC]]]
    [\[ABC]
    相同,后跟
    ]{3}
    。示例
    []]

  • [[ABC]]
    [\[ABC]
    相同,后跟
    ]{4}
    。示例
    A]]]


希望这有帮助

你想用第二种模式实现什么?@C-Otto我只是在试验。你想用第二种模式实现什么?@C-Otto我只是在试验。谢谢,这个正则表达式链接真的很有用!谢谢,这个regex链接真的很有用!
>>> re.findall('[[A-Z][a-z]]+', 'This is my area!')
[]