【问题标题】:Parsing multi line comments from js using python使用python解析来自js的多行注释
【发布时间】:2012-10-20 02:52:37
【问题描述】:

我想使用 python 获取 js 文件中多行 cmets 的内容。

我试过这个代码示例

import re
code_m = """
/* This is a comment. */
"""
code_s = "/* This is a comment*/"

reg = re.compile("/\*(?P<contents>.*)\*/", re.DOTALL + re.M) 
matches_m = reg.match(code_m)
matches_s = reg.match(code_s)
print matches_s # Give a match object
print matches_m # Gives None

我得到matches_mNone。但是matches_s 有效。我在这里错过了什么?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    re.match 测试字符串是否与正则表达式匹配。您可能正在寻找re.search

    >>> reg.search(code_m)
    <_sre.SRE_Match object at 0x7f293e94d648>
    >>> reg.search(code_m).groups()
    (' This is a comment. ',)
    

    【讨论】:

      【解决方案2】:

      match() 只匹配字符串的开头,请改用search()

      当使用match() 时,就像在您的正则表达式的开头有一个字符串锚点 (\A) 的隐式开头。

      作为旁注,您不需要re.M 标志,除非您在正则表达式中使用^$ 并希望它们在行首和行尾匹配。在组合多个标志时,您还应该使用按位或(例如re.S | re.M)而不是相加。

      【讨论】:

      猜你喜欢
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 2021-10-21
      相关资源
      最近更新 更多