0

我正在使用 Python 的正则表达式来解析文件中的注释行。评论看起来像:

.. The comment is here
Not comment
Nope
.. Yup
.. 
.. This and the above are both comments!

但是,我的正则表达式\.\.\s+.*?&与这些行不匹配。我觉得我在行尾和 & 符号方面做错了什么。

4

3 回答 3

4
  • [.]正确,它与文字句点匹配。
  • 你也应该添加^,否则你的正则表达式也会匹配foobar.. blah
  • (我猜你应该.*?$有一个错字)没有多大意义...... &$

这应该这样做:

^\.\.\s+.*

于 2013-09-06T21:34:20.650 回答
3

一些东西:

  • 行尾锚是美元符号,而不是 & 号。如果您正在逐行阅读此文本,则实际上并不需要它。只是让你的比赛变得贪婪:.*.
  • [.]是一个包含文字点的字符组。它不一样.

正确的正则表达式看起来像这样:\.{2}\s+(.*).

我会在没有正则表达式的情况下这样做:

for line in file:
    if line.startswith('..'):
        comment = line[2:].strip()
于 2013-09-06T21:35:00.550 回答
2

行尾字符是$, not &

这是一个简单的正则表达式来匹配这些行: r'\.\..*$'

于 2013-09-06T21:33:37.020 回答