Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在字符串中查找正值或负值?_Python_Regex_String - Fatal编程技术网

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

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(')(?尝试

我对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(')(?尝试在正则表达式中添加可选减号:

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'