简单的Python正则表达式匹配

2024-10-02 04:29:58 发布

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

我试图将一个字符串与一个正则表达式匹配,但这两个实例中只有一个有效

字符串

ABCD 123 - Abcdef 0000
ABCD 123/DEFG123 - Abcdef 0000

正则表达式

^{pr2}$

这与第一个匹配,我试图将其与两者匹配,这是我尝试的新表达式

[A-Z]+ [A-Z0-9\\/]{2,20} - [A-Z][a-z]+ [0-9]{4}

这与整个ABCD 123/DEFG123 - Abcdef 0000中的DEFG123 - Abcdef 0000匹配,但我试图从中获取整个字符串。这是我用的密码

regex = re.compile(expression)
r = regex.search(string)

Tags: 实例字符串re密码searchstring表达式regex
3条回答

删除多余的反斜杠:

[A-Z]+ [A-Z0-9\/]{2,20} - [A-Z][a-z]+ [0-9]{4}

或者您可以使用分组:

^{pr2}$

这将组合上面的两个正则表达式并匹配两行。在

越狱就是问题所在。取出:

string_one = 'ABCD 123 - Abcdef 0000'
string_two = 'ABCD 123/DEFG123 - Abcdef 0000'
pattern = r'[A-Z]+ [A-Z0-9/]{2,20} - [A-Z][a-z]+ [0-9]{4}'
regex = re.compile(pattern)
if regex.search(string_one):
    print "string one matches!"
if regex.search(string_two):
    print "string two matches!"

# output:
string one matches!
string two matches!

请注意,我对原始字符串(r'this is a raw string')的使用是不必要的,但是我对模式使用原始字符串非常着迷,因为它们阻止了大多数反斜杠插值。在

我很确定你不需要逃避你的正斜杠。删除双\并设置。使用regexpal.com网站来测试这种东西。在

相关问题 更多 >

    热门问题