python - 正则表达式中的空字符串有什么作用?
问题描述
我有以下代码行,我不太确定输出会是什么。我发现sys.path
第一个索引是空字符串。我认为这意味着添加path1/path2
但sys.path
不确定我为什么需要' '
?我正在使用python 2.7。谢谢!
extracting_paths = re.findall('.*path1/path2/.*', ' '.join(sys.path))
解决方案
extracting_paths = re.findall('.*path1/path2/.*', ' '.join(sys.path))
实际上应该而不是连接路径名然后匹配应该分别匹配每个路径名:
pat = re.compile('.*path1/path2/.*')
extracting_paths = filter(pat.match, sys.path)
如果你想要字符串和每个字符串中匹配的位置,可以使用
extracting_paths = filter(lambda t: t[1], zip(sys.path, map(pat.findall, sys.path)))
这两者都更安全,因为它们不假设带内分隔符。
推荐阅读
- html - 将xml转换为html到pdf时如何防止元素中的分页符
- angularjs - 如何在本地存储在 Angular 根文件夹中的 Bootstrap4 Navbar 上显示图像?
- javascript - 为什么 css opacity 属性不适用于单击的图像
- typescript - rxjs返回地图内事件的结果
- c# - C# 异步任务
返回对象 - .net - 在 where 子句中使用非集群索引而不是索引查找时,MS SQL 执行计划中的索引扫描
- aws-lambda - “无服务器部署”不适用于 –aws-profile 选项,并且没有错误可调试
- c# - 使用文本提取器后,U-SQL 忽略在 JsonFunctions.JsonTuple() 中导致 JSON 异常的行
- amazon-cloudformation - 通过控制台更新到通过 CLI 使用相同的 json 更新时 AWS Cloudformation 堆栈的差异
- r - 使用平方函数选择列表中的元素