([])+ 和 []+ 之间有什么区别?

王十
>>> sentence = "Thomas Jefferson began building Monticello at the age of 26."
>>> tokens1 = re.split(r"([-\s.,;!?])+", sentence)
>>> tokens2 = re.split(r"[-\s.,;!?]+", sentence)
>>> tokens1 = ['Thomas', ' ', 'Jefferson', ' ', 'began', ' ', 'building', ' ', 'Monticello', ' ', 'at', ' ', 'the', ' ', 'age', ' ', 'of', ' ', '26', '.', '']
>>> tokens2 = ['Thomas', 'Jefferson', 'began', 'building', 'Monticello', 'at', 'the', 'age', 'of', '26', '']

你能解释的目的()

扫地机

(..)在正则表达式中表示一个捕获组(又名“捕获括号”)。当您想从模式中提取值时使用它们。在这种情况下,您使用的re.split函数在模式具有捕获组时以特定方式运行。根据文档:

re.split(pattern, string, maxsplit=0, flags=0)

通过模式的出现拆分字符串。如果在模式中使用捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。

因此,通常情况下,用于拆分字符串的分隔符不会出现在结果中,就像在您的第二个示例中一样。但是,如果使用(),则组中捕获的文本也将出现在拆分的结果中。这就是为什么你' '在第一个例子中得到了很多这就是您的团队所捕获的内容([-\s.,;!?])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

$(“”)和$ .find(“”)之间有什么区别?

〜和/在路径之间有什么区别

“ .equals”和“ ==”之间有什么区别?

“ Ord a => [a]-> [a]-> [a]”和“ [a]-> [a]-> [a]”之间有什么区别

线程和之间有什么区别

not null和<>''之间有什么区别

[],&[]和vec![]之间有什么区别?

之间有什么区别。和.data?

什么是Haskellng?“ haskellPackages”和“ haskellngPackages”之间有什么区别?

什么是Leaflet和Mapbox,它们之间有什么区别?

什么是OLTP和OLAP。它们之间有什么区别?

“”和“之间有什么区别?” 和“!” 在Swift中?

Maven中的package和groupId之间有什么区别

新的netstandardapp和netcoreapp TFM之间有什么区别?

IVssExamineWriterMetadata的C ++和COM接口之间有什么区别?

1L和1之间有什么区别?

“ git commit”和“ git push”之间有什么区别?

docker BRIDGE和HOST模式之间有什么区别?

unicode和unicodedata模块之间有什么区别?

Python模块和Python包之间有什么区别?

元组和列表反向之间有什么区别?

Python模块和Python包之间有什么区别?

分类和预测之间有什么区别?

SFTP,SCP和FISH协议之间有什么区别?

std :: invoke和std :: apply之间有什么区别?

角度7和8之间有什么区别?

实体和聚合之间的UML有什么区别?

struct node和struct node *之间的'->'有什么区别?

“ sudo -s”和“ su root”之间有什么区别?