Python 如何在字符串中查找正值或负值?
我对Python3.3中的一个小程序有一个问题,它应该从字符串返回一个数字 虽然它对正值很有效Python 如何在字符串中查找正值或负值?,python,regex,string,Python,Regex,String,我对Python3.3中的一个小程序有一个问题,它应该从字符串返回一个数字 虽然它对正值很有效 text = "XXXXXXX\nDateMinEnd=230\nXXXXXXX\n" Dmin = re.search('(?<=DateMinEnd=)\w+',text) Dmin_res = int(Dmin.group()) print(Dmin_res) 230 text=“XXXXXXX\nDaminEnd=230\nxxxxxx\n” Dmin=re.search(')(?尝试
text = "XXXXXXX\nDateMinEnd=230\nXXXXXXX\n"
Dmin = re.search('(?<=DateMinEnd=)\w+',text)
Dmin_res = int(Dmin.group())
print(Dmin_res)
230
text=“XXXXXXX\nDaminEnd=230\nxxxxxx\n”
Dmin=re.search(')(?尝试在正则表达式中添加可选减号:
Dmin = re.search('(?<=DateMinEnd=)-?\w+', text)
Dmin=re.search(”(?如果您只需要支持整数,可以在\w
前面添加可选的-
:
Dmin = re.search('(?<=DateMinEnd=)-?\w+',text)
编辑
如果需要对非整数的支持,请使用以下正则表达式:
Dmin = re.search('(?<=DateMinEnd=)-?\d*\.?\d+',text)
-
不是一个词(\w+
)
要搜索所有类型,请将\w+
替换为+
-
未被\w
捕获。我只需执行以下操作:
Dmin = re.search('DateMinEnd=(.*)', text)
您需要告诉正则表达式,-
符号是可选的,如果它存在,则捕获它
因此,您的表达式应该是(”)(?我不确定它在这里是否重要,但请务必查看python 3文档,因为有些内容已经更改:感谢大家提供了非常快速和有价值的答案!感谢@Ilmo Euro提供的数字提示。
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
Dmin = re.search('DateMinEnd=(.*)', text)
>>> re.search('(?<=DateMinEnd=)(-?\d+)', text).group()
'-230'