如何在字符串中找到正值或负值?

2024-06-26 00:15:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python3.3中的一个小程序有一个问题,它应该从字符串中返回一个数字。在

虽然它对积极的价值很有效

text = "XXXXXXX\nDateMinEnd=230\nXXXXXXX\n"
Dmin = re.search('(?<=DateMinEnd=)\w+',text)
Dmin_res = int(Dmin.group())
print(Dmin_res)
230

“结果”为“无”:

^{pr2}$

我真的是一个初学者,所以我将非常感谢任何提示(当然,在询问您之前,我查看了http://docs.python.org/2/library/re.html),并尝试了原始字符串和一些特殊的转义,但不幸的是,我无法找到解决方案)。提前谢谢你。在

安德烈亚斯


Tags: 字符串text程序researchgroupres数字
3条回答

尝试在正则表达式中添加可选减号:

Dmin = re.search('(?<=DateMinEnd=)-?\w+', text)

-是减号本身,?表示可能有一个或零个减号(换句话说,它是可选的)。在

-未被\w捕获。我会做这样的事情:

Dmin = re.search('DateMinEnd=(.*)', text)

如果只需要对整数的支持,可以在\w前面添加一个可选的-

Dmin = re.search('(?<=DateMinEnd=)-?\w+',text)

另外,\w也匹配非数字,因此您可能需要使用\d(用于数字):

^{pr2}$

编辑

如果需要支持非整数,请使用以下正则表达式:

Dmin = re.search('(?<=DateMinEnd=)-?\d*\.?\d+',text)

让我们把它分解:

-?  # optional negation
\d* # zero or more digits
\.? # optional decimal point (. is special so we need to escape it)
\d+ # one or more digits

相关问题 更多 >