如何在Python中创建与以下内容匹配的正则表达式?

时间:2012-10-29 01:08:55

标签: python regex

假设我有很多这样的字符串:

<a id="1.1">
<a id="1.1.1">
<a id="1.1.2">
<a id="1.1.3">
<a id="1.2">
<a id="1.2.1">

我想创建一个只捕获带有“#。#”的正则表达式,所以我试图匹配它以使它以双引号结束,但我没有匹配。

re.compile("[1-9].[1-9]\"")

我期望的结果输出是一个包含以下内容的列表:

  <a id="1.1">
  <a id="1.2">

我做错了什么? (请建议是否有比我正在使用的方法更好的匹配方式。)

1 个答案:

答案 0 :(得分:3)

双面加双引号:r'"\d\.\d"'

例如,

In [109]: import re

In [110]: text = '''<a id="1.1">
<a id="1.1.1">
<a id="1.1.2">
<a id="1.1.3">
<a id="1.2">
<a id="1.2.1">'''.splitlines()

In [111]: [line for line in text if re.search(r'"\d\.\d"', line)]
Out[111]: ['<a id="1.1">', '<a id="1.2">']