正则表达式python3

2024-06-16 03:12:46 发布

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

我试着学习python3,我对正则表达式有一点了解。我学习如何做这个,但我不太明白嗯,这个页码

    1\d2\D2
    ^a\w+z$

Tags: python3d2页码
2条回答

您可以通过读取表达式并逐步选择适当的字符来生成示例字符串。在

例如,1\d2\d2:

1\d2\D2 -> 1
^ 1 means a literal number 1

1\d2\D2 -> 17
 ^^ \d means any digit (0-9).  let's choose 7.

1\d2\D2 -> 172
   ^ 2 means a literal number 2.

1\d2\D2 -> 172X
    ^^ \D means anything *but* a digit (0-9).  let's choose X

1\d2\D2 -> 172X2
      ^ 2 means a literal number 2.

因此172X2将与1\d2\D2匹配

下一个-^a\w+z$-可以有多个长度:

^{pr2}$

因此a4Q1z将与^a\w+z$匹配。a4z(您可以检查…)

注意,*+相似,因为你可以跳回并重复,但是也可以这意味着你可以完全跳过左边的内容(换句话说,+表示“至少重复一次”,但是*表示“重复零或更多”(零是跳过)。在

更新

[abc]表示选择ab或{}中的任何一个。在

x{2,3}表示加x2到3次(类似于+,但有次数限制)。所以,xx或{}。在

\1有点复杂。你需要找出第一组圆括号内的内容(因为数字是1)并加上它。因此,例如,(\d+)\1将匹配2323,如果您从左到右,并为(\d+)选择{}。在

要生成一些匹配的示例,可能需要解析regex并将regex的每个块发送到您要编写的函数中,如getRandomSatisfyingText。多次调用它,直到得到3个唯一的字符串。直到你开始支持原子断言(lookaheads and behind),这可能不会太难。在

相关问题 更多 >