python - 如何在python中的某些分隔符之间获取所有子字符串
问题描述
我正在尝试获取与某些分隔符匹配的所有子字符串。我的问题是我还需要最后一次出现的字符。字符串必须介于以下任何字符之间: . , / , ? , = , - , _
我试过这个正则表达式
pattern = re.compile(r"""[./?=\-_][^./?=\-_]+[./?=\-_]""")
在这个例子中:
-facebook=chat.messenger?
我无法获得子字符串 =chat。
我只得到 -facebook= 和 .messenger?
解决方案
看起来重叠是造成一些戏剧性的原因。如果使用regex
模块(预计最终会替换re
模块),您可以这样做
import regex as re
delimiters = r'[./?=\-_]'
pattern = delimiters + r'[a-z]+' + delimiters
s = '-facebook=chat.messenger?'
print(regex.findall(pattern, s, overlapped=True))
# ['-facebook=', '=chat.', '.messenger?']
请注意,这假定所有字符都是小写的[a-z]
,这[./?=\-_]
是您指定的分隔符列表。
希望这可以帮助!
推荐阅读
- database - awk 和字段拆分参数
- json - 无法使用 ajax 和 codeigniter 以模式显示内容
- python - 如何在 Scrapy 中重试 IndexError
- intel - Intel VT-x:物理和线性地址空间不匹配
- scala - spark scala:计数出现键 - 对值
- scroll - react-bootstrap-table2 如何处理扩展行中的大显示
- javascript - VueJS:在 Vue.Draggable 和 VueX 中使用计算的“set/get”
- json - 对 Pre Fill DocuSign 模板的 API 调用不起作用
- image - 在带有外部链接的地图函数中动态渲染 React Native 图像
- sas - 具有多个索引的变量范围