|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、下面用法有何区别?好像返回结果都一样啊,其中第1个代码里的小写字母r,好像小甲鱼在正则表达式章节中未提及它的作用
>>> re.findall(r'[^a-z]', 'FishCFishC\n.com!')
['F', 'C', 'F', 'C', '\n', '.', '!']
>>> re.findall('[^a-z]', 'FishCFishC\n.com!')
['F', 'C', 'F', 'C', '\n', '.', '!']
>>> re.search(r'[^a-z]', 'FishCFishC\n.com!')
<re.Match object; span=(0, 1), match='F'>
>>> re.search('[^a-z]', 'FishCFishC\n.com!')
<re.Match object; span=(0, 1), match='F'>
2、下面代码中<.+>是什么意思?小甲鱼在该章节中好像也没有说的非常清楚耶
>>> s = '<html><title>I love FishC.com!</title></html>'
>>> re.search('<.+>', s)
<re.Match object; span=(0, 45), match='<html><title>I love FishC.com!</title></html>'>
>>> re.search(r'<.+>', s)
<re.Match object; span=(0, 45), match='<html><title>I love FishC.com!</title></html>'>
>>> re.findall('<.+>', s)
['<html><title>I love FishC.com!</title></html>']
>>> re.findall(r'<.+>', s)
['<html><title>I love FishC.com!</title></html>']
本帖最后由 isdkz 于 2022-4-21 16:08 编辑
1、r 代表的是原始字符串,就是取消 \ 的转义作用,
比如 '\n' 代表的是一个换行,而 r'\n' 代表一个反斜杠加上一个 n 组成的字符串,
如果没有反斜杠或者不会跟反斜杠组成转义字符,那你加 r 和不加 r 是没有区别的,
在正则表达式中最好加上 r,因为正则表达式中会有可能用上反斜杠,
2、<.+> 中的尖括号在这里没有任何特殊作用,就是匹配普通的尖括号,
尖括号只会在小括号里面有特殊作用,在断言和命名分组那里会用到,
尖括号中间有 .+ 就是说匹配尖括号里面有一个以上任意字符(. 匹配任意字符,+ 匹配一次或多次)的字符串
|
|