正则表达式可在句号之前获取所有数字

时间:2019-06-07 09:36:46

标签: 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 of this full stop

2 个答案:

答案 0 :(得分:2)

您需要转义.

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

因为.是正则表达式中的特殊字符,可匹配任何字符。还添加了+以匹配1个或多个数字。

或者,如果您实际使用的是'FULLWIDTH FULL STOP' (U+FF0E),则可以在正则表达式中使用特殊字符而不必对其进行转义:

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

答案 1 :(得分:0)

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

\d(?=.*?.)

将生成单个数字作为答案

Demo in regex 101

\d+(?=.*?.)

Demo2

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

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