Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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 - Fatal编程技术网

Python 正则表达式以获取句号之前的所有数字

Python 正则表达式以获取句号之前的所有数字,python,Python,我希望按照我的头衔说的去做,但我似乎做不到 string = "tex3591.45" #please be aware that my digit is in half-width text_temp = re.findall("(\d.)", string) 我当前的输出是: ['35', '91', '45'] ['3591.'] # with the "." at the end of the integer. No matter how many integer infront o

我希望按照我的头衔说的去做,但我似乎做不到

string = "tex3591.45" #please be aware that my digit is in half-width
text_temp = re.findall("(\d.)", string)
我当前的输出是:

['35', '91', '45']
['3591.'] # with the "." at the end of the integer. No matter how many integer infront of this full stop
我的预期产出是:

['35', '91', '45']
['3591.'] # with the "." at the end of the integer. No matter how many integer infront of this full stop

您需要退出

text_temp = re.findall(r"\d+\.", string)
因为
是正则表达式中的一个特殊字符,它匹配任何字符。还添加了
+
以匹配1个或多个数字

或者,如果您实际正在使用,您可以只使用正则表达式中的特殊字符而不转义:

text_temp = re.findall(r"\d+.", string)

您需要退出

text_temp = re.findall(r"\d+\.", string)
因为
是正则表达式中的一个特殊字符,它匹配任何字符。还添加了
+
以匹配1个或多个数字

或者,如果您实际正在使用,您可以只使用正则表达式中的特殊字符而不转义:

text_temp = re.findall(r"\d+.", string)

您可以将此正则表达式与
re.findall
一起使用,以获得所需的结果

\d(?=.*?.)
将生成单个数字作为答案

这将生成一组数字作为一个字符串


我使用正向前瞻和贪婪匹配来检查某个数字后是否有一个句号,然后给出输出。希望这有帮助:)。

您可以将此正则表达式与
re.findall
一起使用,以获得所需的结果

\d(?=.*?.)
将生成单个数字作为答案

这将生成一组数字作为一个字符串


我使用正向前瞻和贪婪匹配来检查某个数字后是否有一个句号,然后给出输出。希望这有帮助:)。

有两件事不对:没有重复,只有一个数字与
\d
匹配
匹配您必须用反斜杠转义的所有字符。@KlausD:在这种情况下,用反斜杠转义是错误的解决方案-请参阅我对ruohola的评论。有两件事是错误的:没有重复,只有一个数字与
\d
匹配
匹配所有必须用反斜杠转义的字符。@KlausD:在这种情况下,用反斜杠转义是错误的解决方案-请参阅我对ruohola的评论。这将在任何全宽句号之前单独查找任何数字。例如,对于<代码>“35 时代91.45",它将发出
…OP没有明确禁止这种情况,但我不能确定这是他们的意思。@Amadan我同意你说的。如果是不同的,我将删除答案。这只是一个警告性的评论-但这是OP的一种可能解释。除非OP澄清,否则我将保留它。(我忽略OP的“期望结果”,因为使用regexp是不可能的,因为regexp在字符串中找不到不存在的东西)正如amadan所说,取的值不是3951。而是3,5,9,1。有解决办法吗?@kingkongmanooftheworldinchaos我给你的第二个正则表达式会给你这样的答案,这会在任何全宽句号之前单独找到任何数字。例如,
”35 时代91.45“
,它将发出
…OP没有明确禁止这种情况,但我不能确定这是他们的意思。@Amadan我同意你说的。如果是不同的,我将删除答案。这只是一个警告性的评论-但这是OP的一种可能解释。除非OP澄清,否则我将保留它。(我忽略了OP的“期望结果”,因为使用regexp是不可能的,因为regexp在字符串中找不到不存在的东西)正如amadan所说,取的值不是3951。而是3,5,9,1。有解决办法吗?@kingkongmanoftheworldinchao我给你的第二个regex会给你这样的答案