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"代码>,它将发出3代码>,5代码>,9代码>和1
…OP没有明确禁止这种情况,但我不能确定这是他们的意思。@Amadan我同意你说的。如果是不同的,我将删除答案。这只是一个警告性的评论-但这是OP的一种可能解释。除非OP澄清,否则我将保留它。(我忽略OP的“期望结果”,因为使用regexp是不可能的,因为regexp在字符串中找不到不存在的东西)正如amadan所说,取的值不是3951。而是3,5,9,1。有解决办法吗?@kingkongmanooftheworldinchaos我给你的第二个正则表达式会给你这样的答案,这会在任何全宽句号之前单独找到任何数字。例如,”35 时代91.45“
,它将发出3代码>,5代码>,9代码>和1
…OP没有明确禁止这种情况,但我不能确定这是他们的意思。@Amadan我同意你说的。如果是不同的,我将删除答案。这只是一个警告性的评论-但这是OP的一种可能解释。除非OP澄清,否则我将保留它。(我忽略了OP的“期望结果”,因为使用regexp是不可能的,因为regexp在字符串中找不到不存在的东西)正如amadan所说,取的值不是3951。而是3,5,9,1。有解决办法吗?@kingkongmanoftheworldinchao我给你的第二个regex会给你这样的答案