请问这两个表达式就多个括号为什么内容不同,最后的引号是字符串的引号吗?
请问这两个表达式就多个括号为什么内容不同,最后的引号是字符串的引号吗? 请问这两个表达式就多个括号为什么内容不同?这里加不加括号就是 是否保留匹配项的问题,第一个是不保留匹配项
而第二个是匹配保留的,所以第二个把所有符合也切割并保留下来了
最后的引号是字符串的引号吗?
对的,最后一个元素就是空字符串的意思 Twilight6 发表于 2020-6-10 11:35
这里加不加括号就是 是否保留匹配项的问题,第一个是不保留匹配项
而第二个是匹配保留的,所以第 ...
{:10_277:}匹配项是什么意思, 我基础不大好。还有如果我在字符串的前面再加上一个空格,再分割的话除了加的空格,还多出来一个空的字符串是为什么呢 ?
>>> re.split('(\W+)', ' runoob, runoob, runoob.')
['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', '']
白白白白丶白 发表于 2020-6-10 11:45
匹配项是什么意思, 我基础不大好。还有如果我在字符串的前面再加上一个空格,再分割的话除了 ...
简单理解就是 保不保留切割后剩余的 字符串
你加个空格,匹配到的都是字母进行切割,因为你加了括号,就将切割后剩余的保留下拉,所以你前面会多个空格
Twilight6 发表于 2020-6-10 11:49
简单理解就是 保不保留切割后剩余的 字符串
你加个空格,匹配到的都是字母进行切割,因为你加了括号, ...
谢谢,匹配项理解了,为什么加空格后分割出来的列表里是两个空字符串 白白白白丶白 发表于 2020-6-10 11:53
谢谢,匹配项理解了,为什么加空格后分割出来的列表里是两个空字符串
好像是因为你是 \W 大写的原因才发现你是大写的,大写的是匹配非字母数字以及下划线 那也不会出现两个字符串啊,把里面的字母符号都匹配出来不也是只剩下一个字符串吗? Twilight6 发表于 2020-6-10 12:00
好像是因为你是 \W 大写的原因才发现你是大写的,大写的是匹配非字母数字以及下划线
那也不会出现两个字符串啊,把里面的字母符号都匹配出来不也是只剩下一个字符串吗 白白白白丶白 发表于 2020-6-10 13:39
那也不会出现两个字符串啊,把里面的字母符号都匹配出来不也是只剩下一个字符串吗
就是因为切割的是非字母丫,匹配到空格 将空格切割掉必须 头先切割然后切割尾巴但是空格前面没东西了
但是空格的头依旧要切割,导致出现了一个空字符串,这和字符串切割是一个道理,举个例子:
temp = 'cc'.split('c')
print(temp)
你可以测试下字符串切割的情况
输出结果
>>> ['', '', '']
袄,这就是split函数本身的理解了。我去看看split定义
Twilight6 发表于 2020-6-10 13:52
就是因为切割的是非字母丫,匹配到空格 将空格切割掉必须 头先切割然后切割尾巴但是空格前面没东西 ...
问题又来了,刚才试了一下,小写w打出来的就
不一样的结果,
没空格 空字符串在列表的头上
re.split(r'(\w+)', 'runboo, runboo, runboo.')
['', 'runboo', ', ', 'runboo', ', ', 'runboo', '.']
加空格 后在列表的结尾也没有多出来个空字符串
re.split(r'(\w+)', ' runboo, runboo, runboo.')
[' ', 'runboo', ', ', 'runboo', ', ', 'runboo', '.'] 白白白白丶白 发表于 2020-6-10 18:39
问题又来了,刚才试了一下,小写w打出来的就
不一样的结果,
没空格 空字符串在列表的头上
小写 和大写是两个匹配东西呀....哎哟
小写 匹配字母和数字下划线而大写匹配非字母和数字下划线
白白白白丶白 发表于 2020-6-10 18:39
问题又来了,刚才试了一下,小写w打出来的就
不一样的结果,
没空格 空字符串在列表的头上
大写匹配的到空格所以前面有个空字符串呀,小写匹配不到空格 Twilight6 发表于 2020-6-10 18:47
大写匹配的到空格所以前面有个空字符串呀,小写匹配不到空格
你看我发的代码,都是小写的,第一个字符串前面没打空格的,所以列表里第一个元素是个空字符串,但是第二个也是小写,字符串前面打了一个空格,列表第一个元素就是空格了,空字符串就不见了,\w是匹配字母数字下划线,但是这里为什么把空格匹配出来了,因为加了括号的缘故吗?
白白白白丶白 发表于 2020-6-10 19:36
你看我发的代码,都是小写的,第一个字符串前面没打空格的,所以列表里第一个元素是个空字符串,但是第二 ...
奥对,你前面说加括号保留了切割后剩余的东西 白白白白丶白 发表于 2020-6-10 20:16
奥对,你前面说加括号保留了切割后剩余的东西
{:10_245:}昨天晚上没看到你的消息 抱歉 Twilight6 发表于 2020-6-11 17:21
昨天晚上没看到你的消息 抱歉
{:5_109:}那我说的对不对,是不是因为加了括号的原因,保留了切割后的切割后剩余的
白白白白丶白 发表于 2020-6-12 15:29
那我说的对不对,是不是因为加了括号的原因,保留了切割后的切割后剩余的
嗯吧,应该没毛病
页:
[1]