|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sky19791111 于 2024-5-24 17:19 编辑
在利用正则表达式进行匹配时,如下:
例题1:
m = re.match(r"(abc)+", "abcabc")
m.groups()的结果是("abc",)
疑问1:结果为什么不是("abc","abc");疑问2:结果中怎么还有个",",这是什么意思?
例题2:
m = re.match(r"([abc])+", "abc")
m.groups()的结果是("c",)
疑问1:结果为什么不是("abc");疑问2:同上。
例题1的结果是("abc",),不是("abc',)。结果中的逗号是为了区分多个分组的值,因此在只有一个分组的情况下也会出现逗号。这是正则表达式模块的规定,无法去掉逗号。
对于例题1,正则表达式是"(abc)+",表示匹配一个或多个连续的"abc"。而在字符串"abcabc"中,有两个连续的"abc",所以匹配成功。但当有多个分组时,默认返回最后一次匹配的分组的值,即"abc"。
对于例题2,正则表达式是"()",意思是匹配一个空的分组。在字符串"abc"中,没有匹配到空的分组,所以匹配失败。而在匹配失败时,正则表达式模块会返回最后一个分组匹配到的字符串的值,即"c"。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|