【问题标题】:Python regex match broblemPython 正则表达式匹配问题
【发布时间】:2014-08-03 14:22:22
【问题描述】:

所以我有这个小代码:

import re
file = open('frame.txt',"r")


for i in file:
    a = re.match(r"/\*(.*)/g",i)
    print a

除了http://www.regexr.com/ 之外的每一行都打印“无”匹配是正确的,但我期待匹配

lorem * 我们

ispum * ewew

dolor * 我们

【问题讨论】:

  • 你的问题不是很清楚。你期望看到什么,你实际看到了什么?

标签: python regex


【解决方案1】:

http://www.regexr.com/ 专为 javascript 设计并遵循 Javascript 正则表达式语法。但是Python不需要定界符(去掉斜线),g修饰符必须换成合适的方法(可能是re.findall

查看documentation 了解更多信息。

https://pythex.org/是专门为Python设计的在线测试器。

【讨论】:

    【解决方案2】:

    猜测(由于缺乏信息)“/g”不应该是您的注册前的一部分。 它应该作为一个标志给出,因为 re.match API 是:

    match(pattern, string, flags=0)
    

    由于您可能是从http://www.regexr.com/ 复制的,我想您无论如何都不需要该标志。 删除“/g”后,您将获得匹配项。 请记住,您将获得 Match 对象(您可以看到使用 MatchObject.string 捕获的字符串。

    不管怎样,如果不是大文件,可以使用re.findall():

    file = open('frame.txt',"r")
    content = file.read()
    matches = re.findall(r"/\*(.*)", content)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-17
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      相关资源
      最近更新 更多