![](/img/trans.png)
[英]How to fix a regular expression form for scraped url data via python?
[英]How to fix this regular expression in python?
我想處理一些像這樣打印出來的字符串日期
'node0, node1 0.04, node8 11.11, node14 72.21\n'
'node1, node46 1247.25, node6 20.59, node13 64.94\n'
我想在這里找到所有浮點數,這是我使用的代碼
for node in nodes
pattern= re.compile('(?<!node)\d+.\d+')
distance = pattern.findall(node)
但結果是這樣的
['0.04', '11.11', '4 72']
而我想要的是這個
['0.04', '11.11', '72.21']
有關修正此正則表達式的任何建議嗎?
的.
在你的表達中沒有轉義。
for node in nodes:
pattern = re.compile(r"(?<!node)\d+\.\d+")
distance = pattern.findall(node)
在正則表達式中,a .
字符被解釋為通配符,可以匹配(幾乎)任何字符。 因此,您的搜索模式實際上允許一個數字或一組數字,后跟任何字符,后跟另一個數字或一組數字。 要停止對點字符的這種解釋,請使用反斜杠\\
對其進行轉義。
(旁白:你不需要在你的循環中編譯你的正則表達式模式。實際上,這將減慢你的代碼。)
pattern = re.compile('(?<!node)\d+\.\d+')
for node in nodes:
distance = pattern.findall(node)
print distance
輸出:
['0.04','11 .11','72 .21']
['1247.25','20 .59','64 .94']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.