python - Python 中关于 re.split() 的正则表达式 [] vs ()
问题描述
在 re.split(pattern,string) 中用作模式时,[,.] 和 (,|.) 有什么区别?有人可以解释一下Python中的这个例子吗:
import re
regex_pattern1 = r"[,\.]"
regex_pattern2 = r"(,|\.)"
print(re.split(regex_pattern1, '100,000.00')) #['100', '000', '00']
print(re.split(regex_pattern2, '100,000.00'))) #['100', ',', '000', '.', '00']
解决方案
[,\.]
相当于,|\.
。[1]
(,|\.)
相当于([,\.])
。
()
创建一个捕获,并re.split
返回捕获的文本以及由模式分隔的文本。
>>> import re
>>> re.split(r'([,\.])', '100,000.00')
['100', ',', '000', '.', '00']
>>> re.split(r'(,|\.)', '100,000.00')
['100', ',', '000', '.', '00']
>>> re.split(r',|\.', '100,000.00')
['100', '000', '00']
>>> re.split(r'(?:,|\.)', '100,000.00')
['100', '000', '00']
>>> re.split(r'[,\.]', '100,000.00')
['100', '000', '00']
- 不过,您有时可能需要
(?:,|\.)
限制|
将其嵌入到更大模式中的操作数。
推荐阅读
- javascript - React.js Material-UI:以编程方式从子组件中隐藏父组件选项卡
- python - 过滤多个集合中的成员资格时如何避免 distinct()?
- javascript - 将 css 文件添加到 React App 时出现“模块解析失败:意外令牌”
- python - 给定经过训练的生成器模型,如何使用 GNS 创建新的假图像?
- reactjs - React 无法从本地主机上的烧瓶 API 获取 api 数据
- java - 我可以粘贴在多行上吗?
- angular - Angular 如何从我的 localeStorage 数组中删除特定对象
- rsync - 许多大文件从服务器传输到本地
- php - 匹配文件中的字符串并删除该行
- progress-bar - Toast 通知进度条/数据绑定不起作用