簡體   English   中英

可選單詞終止數字之前的點的正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM