📜  什么是正则表达式中的逗号 - Python (1)

📅  最后修改于: 2023-12-03 14:49:13.071000             🧑  作者: Mango

什么是正则表达式中的逗号 - Python

在Python中的正则表达式中,逗号(comma)通常用于表示重复匹配的次数。

重复匹配

在正则表达式中,一个字符或一个字符组合可以使用大括号{}来表示匹配的次数。例如,{2,4}表示匹配2到4次。逗号就是用来分隔最小和最大重复次数的。

import re

pattern = r"ab{2,4}c"
test_string_1 = "abbc"
test_string_2 = "abbbc"
test_string_3 = "abbbbc"
test_string_4 = "abc"

result_1 = re.search(pattern, test_string_1)
result_2 = re.search(pattern, test_string_2)
result_3 = re.search(pattern, test_string_3)
result_4 = re.search(pattern, test_string_4)

print(result_1)  # None
print(result_2)  # <re.Match object; span=(0, 4), match='abbc'>
print(result_3)  # <re.Match object; span=(0, 5), match='abbbc'>
print(result_4)  # None

上面的示例中,正则表达式ab{2,4}c表示前面的b字符必须出现2到4次。测试字符串test_string_1test_string_4并没有符合条件,因此返回了None,而测试字符串test_string_2test_string_3都符合条件,因此返回了相应的结果。

匹配多个模式

在某些情况下,逗号也可以用于匹配多个模式。例如,正则表达式a,b可以匹配一个'a'和一个',',但是不能匹配'a'或者'b'。同时,逗号本身需要被转义。

import re

pattern = r"a,b"
test_string_1 = "a,b"
test_string_2 = "a"
test_string_3 = "b"

result_1 = re.search(pattern, test_string_1)
result_2 = re.search(pattern, test_string_2)
result_3 = re.search(pattern, test_string_3)

print(result_1)  # <re.Match object; span=(0, 3), match='a,b'>
print(result_2)  # None
print(result_3)  # None

上面的示例中,正则表达式a,b只能匹配字符串test_string_1,因为它同时包含了字符'a'和','。字符串test_string_2test_string_3都不能被匹配。