3

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

<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">

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

4

1 回答 1

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">']
于 2012-10-29T01:12:00.363 回答