python - 正则表达式搜索显示不同的结果

标签 python regex

我想提取 > 之间的数字和 <在 Python 2.7 上使用正则表达式

即来自 3213>1234<32131234 .

但结果(print(data2))什么也没显示。有什么问题?

我在 Ubuntu 和 Windows pydev 上测试了下面的代码。

import re

a = "3213>1234<3213"
p = re.compile('>[0-9]*<')
data = p.search(a).group()
print(data)

p2 = re.compile('[0-9]*')
data2 = p2.search(data).group()
print(data2)

最佳答案

问题是您得到了 [0-9]* 的最早可能匹配项在'>1234<' ,这实际上是它最开始的空字符串,在 > 之前.

除了直接的正则表达式解决方案,您还可以简单地使用 data2 = data[1:-1] 修复您的问题.

关于python - 正则表达式搜索显示不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34985507/

相关文章:

python - sklearn中的预定义Split函数

python - Heroku + Django migrate 命令不会创建任何表

python - 具有相同行数的两个 CSV 文件按列串联

html - 使用 VBScript 正则表达式替换 HTML

java - 如何使用java用字符串中的空格替换(和)括号

java - 删除/替换空子字符串

python - 计算合并排序中的反转次数

python - Python 2.x 中的 nonlocal 关键字

c# - RegEx关闭未关闭的标签

jQuery DataTables - fnFilter 不适用于正则表达式