python正则表达式:如何对多个模式字符串进行模式搜索?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python正则表达式:如何对多个模式字符串进行模式搜索?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1218字,纯文字阅读大概需要2分钟。
内容图文
![python正则表达式:如何对多个模式字符串进行模式搜索?](/upload/InfoBanner/zyjiaocheng/792/b863416d4a06447385193d1bd807552e.jpg)
我必须在文件中搜索以下模式,(任何匹配都符合条件)
pattern_strings = ['\xc2d', '\xa0', '\xe7', '\xc3\ufffdd', '\xc2\xa0', '\xc3\xa7', '\xa0\xa0', '\xc2', '\xe9']
pattern = [re.compile(x) for x in pattern_strings]
并使用此功能
def find_pattern(path):
with open(path, 'r') as f:
for line in f:
found = pattern.search(line)
if found:
logging.info('found - ' + found)
当我尝试使用它
find_pattern('myfile')
我看到AttributeError:“’list’对象没有属性’search’”
因为模式是
[< _sre.SRE_Pattern对象位于0x107948378>,< _sre.SRE_Pattern对象位于0x107b31c70>,< _sre.SRE_Pattern对象位于0x107b31ce0>,< _sre.SRE_Pattern对象位于0x107ac3cb0>,< _sre.SRE_Pattern对象位于0x107b747b0> ,< _sre.SRE_Pattern对象位于0x107b74828>,< _sre.SRE_Pattern对象位于0x107b748a0>,< _sre.SRE_Pattern对象位于0x107b31d50>,< _sre.SRE_Pattern对象位于0x107b31dc0>]
如何在pattern_strings中找到一个查找所有字符串的模式?
解决方法:
您可以简单地将所有表达式连接到|:
pattern_strings = ['\xc2d', '\xa0', '\xe7', '\xc3\ufffdd', '\xc2\xa0', '\xc3\xa7', '\xa0\xa0', '\xc2', '\xe9']
pattern_string = '|'.join(pattern_strings)
pattern = re.compile(pattern_string)
但是,这确实假设您的模式都不够复杂,以至于这样的简单连接可能会破坏.对于您示例中的那些,它应该工作.对于更复杂的模式,它可能不会.
内容总结
以上是互联网集市为您收集整理的python正则表达式:如何对多个模式字符串进行模式搜索?全部内容,希望文章能够帮你解决python正则表达式:如何对多个模式字符串进行模式搜索?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。