[英]regex for dot before optional word terminating numbers
這里也問了一個類似的問題:
但在我看來,我的問題沒有得到回答。
我想查找由數字、點和可選數字組成的單詞邊界之間的數字(在 Python 中):
import re search_in = '55.1 55. 55.12' reg_str = r'\d+\.\d*\b' lst = re.findall(reg_str, search_in) print(lst) # ['55.1', '55.12'] # expected: ['55.1', '55.', '55.12']
如果點在單詞的末尾,則不匹配。 我也無法找出原因,也沒有找到解決方案。 有人可以幫忙嗎?
只需在您的正則表達式中刪除\b
(單詞邊界)
import re
search_in = '55.1 55. 55.12'
reg_str = r'\d+\.\d*'
lst = re.findall(reg_str, search_in)
print(lst)
或者如果你想在空格之間分隔,你可以使用split()
function
search_in = '55.1 55. 55.12'
print(search_in.split(" "))
output
['55.1', '55.', '55.12']
\b
錨表示單詞邊界,這意味着它將針對以單詞而不是數字為界的模式,因此不會捕獲中間數字,因為下一個模式是數字。 正確的正則表達式解決方案是\b\d+\.\d*
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.