我希望按照我的称呼做,但是我似乎做不到。
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
答案 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(?=.*?.)
将生成单个数字作为答案
\d+(?=.*?.)
这将生成一串数字作为一个字符串
我使用正向前瞻和贪婪匹配来检查某个数字后是否有句号,然后给出输出。希望这会有所帮助:)。