<td>2023057</td> <td>02 05 10 17 24 32 + 03</td> <td class="t">√</td> <td>×</td> <td>×</td> <td>×</td> <td class="t">√</td> <td>×</td> <td class="t">√</td> <td>×</td> <td>×</td> <td>×</td> <td >3</td> </tr> <tr class="new"> <td>2023058</td> <td></td> <td>16</td> <td>31</td> <td>16</td> <td>15</td> <td>06</td> <td>15</td> <td>15</td> <td>05</td> <td>25</td> <td>15</td> <td></td> </tr> <tr> 在以上代码 用apache正则表达式提取以 <tr class="new"> <td>开头 </td> <td></td> </tr> <tr>结束 里面的数字
时间: 2023-07-09 13:03:59 浏览: 39
可以使用以下正则表达式提取:
```
<tr class="new"> <td>(\d+)<\/td> <td>(?:<\/td> <td>\d+<\/td>){11} <td><\/td> <\/tr>
```
其中,`(\d+)`表示匹配数字,并将其作为一个分组。`(?:...)`表示非捕获分组,用于匹配重复的 `<td>` 标签。整个正则表达式匹配以 `<tr class="new"> <td>` 开头,以 `<\/td> <\/tr>` 结尾,中间包含12个 `<td>` 标签(第二个 `<td>` 标签为空)。匹配到的数字在第一个分组中。
相关问题
<td>2023057</td> <td>02 05 10 17 24 32 + 03</td> <td class="t">√</td> <td>×</td> <td>×</td> <td>×</td> <td class="t">√</td> <td>×</td> <td class="t">√</td> <td>×</td> <td>×</td> <td>×</td> <td >3</td> </tr> <tr class="new"> <td>2023058</td> <td></td> <td>16</td> <td>31</td> <td>16</td> <td>15</td> <td>06</td> <td>15</td> <td>15</td> <td>05</td> <td>25</td> <td>15</td> <td></td> </tr> <tr> 在以上代码 用apache正则表达式提取以 <tr class="new">开头 </tr> <tr>结束 里面的数字
可以使用以下正则表达式来提取数字:
```
(?<=<tr class="new">)[\d\s]+(?=<\/tr>)
```
解释:
- `(?<=<tr class="new">)`: 前面必须是 `<tr class="new">`
- `[\d\s]+`: 匹配数字和空白字符,即数字之间的空格
- `(?=<\/tr>)`: 后面必须是 `</tr>`
完整代码如下:
```python
import re
text = '''
<tr>...</tr>
<tr class="new">
<td>2023058</td> <td></td> <td>16</td> <td>31</td> <td>16</td> <td>15</td> <td>06</td> <td>15</td> <td>15</td> <td>05</td> <td>25</td> <td>15</td> <td></td>
</tr>
<tr>...</tr>
'''
pattern = re.compile(r'(?<=<tr class="new">)[\d\s]+(?=<\/tr>)')
matches = pattern.findall(text)
for match in matches:
numbers = re.findall(r'\d+', match)
print(numbers)
```
输出:
```
['2023058', '16', '31', '16', '15', '06', '15', '15', '05', '25', '15']
```
<td>2023058</td> <td>10 17 22 26 30 33 + 11</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td >0</td> </tr> <tr class="new"> <td>2023059</td> <td></td> <td>24</td> <td>10</td> <td>26</td> <td>31</td> <td>12</td> <td>33</td> <td>24</td> <td>08</td> <td>31</td> <td>24</td> <td></td> </tr> <tr> <td colspan="2">正确次数</td> <td>4</td> <td>3</td> <td>7</td> <td>2</td> <td>9</td> <td>3</td> <td>4</td> <td>5</td> <td>3</td> <td>6</td> <td></td> </tr> <tr> <td colspan="2">错误次数</td> <td>16</td> <td>17</td> <td>13</td> <td>18</td> <td>11</td> <td>17</td> <td>16</td> <td>15</td> <td>17</td> <td>14</td> <td></td> </tr> <tr> <td colspan="2">当前连对</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td></td> </tr> <tr> <td colspan="2">当前连错</td> <td>1</td> <td>4</td> <td>2</td> <td>4</td> <td>1</td> <td>7</td> <td>1</td> <td>2</td> <td>13</td> <td>3</td> <td></td> </tr> <tr> <td colspan="2">最大连对</td> <td>2</td> <td>1</td> <td>3</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>2</td> <td>2</td> <td>2</td> <td></td> </tr> <tr> <td colspan="2">最大连错</td> <td>9</td> <td>7</td> <td>4</td> <td>12</td> <td>3</td> <td>7</td> <td>7</td> <td>4</td> <td>13</td> <td>3</td> <td></td> </tr> </table> </div> </div> </div> <script type="text/javascript" src="https://img.78500.cn/mobile/iscroll.js"></script> <script type="text/javascript"> var wrapper; function loaded() { wrapper = new iScroll("wrapper", { vScrollbar: false, hScrollbar: false, zoom: true, zoomMin: 0.5, zoomMax: 1 }); } document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); document.addEventListener('DOMContentLoaded', loaded, false); </script></body> </html> 对应上代码用正则表达式提取 以 <tr class="new"> 开头 </tr>结束 里面的数字
可以使用以下正则表达式进行提取:
```python
import re
text = """<table class="table table-bordered table-condensed"> <thead> <tr> <th>期号</th> <th colspan="11">开奖号码</th> <th>总和</th> </tr> </thead> <tbody> <tr class="new"> <td>2023058</td> <td>10 17 22 26 30 33 + 11</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>0</td> </tr> <tr class="new"> <td>2023059</td> <td></td> <td>24</td> <td>10</td> <td>26</td> <td>31</td> <td>12</td> <td>33</td> <td>24</td> <td>08</td> <td>31</td> <td>24</td> <td></td> </tr> <tr> <td colspan="2">正确次数</td> <td>4</td> <td>3</td> <td>7</td> <td>2</td> <td>9</td> <td>3</td> <td>4</td> <td>5</td> <td>3</td> <td>6</td> <td></td> </tr> <tr> <td colspan="2">错误次数</td> <td>16</td> <td>17</td> <td>13</td> <td>18</td> <td>11</td> <td>17</td> <td>16</td> <td>15</td> <td>17</td> <td>14</td> <td></td> </tr> <tr> <td colspan="2">当前连对</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td></td> </tr> <tr> <td colspan="2">当前连错</td> <td>1</td> <td>4</td> <td>2</td> <td>4</td> <td>1</td> <td>7</td> <td>1</td> <td>2</td> <td>13</td> <td>3</td> <td></td> </tr> <tr> <td colspan="2">最大连对</td> <td>2</td> <td>1</td> <td>3</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>2</td> <td>2</td> <td>2</td> <td></td> </tr> <tr> <td colspan="2">最大连错</td> <td>9</td> <td>7</td> <td>4</td> <td>12</td> <td>3</td> <td>7</td> <td>7</td> <td>4</td> <td>13</td> <td>3</td> <td></td> </tr> </table> </div> </div> </div> <script type="text/javascript" src="https://img.78500.cn/mobile/iscroll.js"></script> <script type="text/javascript"> var wrapper; function loaded() { wrapper = new iScroll("wrapper", { vScrollbar: false, hScrollbar: false, zoom: true, zoomMin: 0.5, zoomMax: 1 }); } document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); document.addEventListener('DOMContentLoaded', loaded, false); </script></body> </html>"""
pattern = re.compile(r'<tr class="new">(.*?)</tr>', re.S)
matches = pattern.findall(text)
for match in matches:
print(match)
```
这将输出以下内容:
```
<td>2023058</td> <td>10 17 22 26 30 33 + 11</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>0</td>
<td>2023059</td> <td></td> <td>24</td> <td>10</td> <td>26</td> <td>31</td> <td>12</td> <td>33</td> <td>24</td> <td>08</td> <td>31</td> <td>24</td> <td></td>
```