簡體   English   中英

如何在帶有不同數量空白的python中使用正則表達式

[英]How to use regex in python with varying amounts of white spaces

我試圖在這里重新格式化我的數據:

GI | 492845765 |裁判| WP_005999719.1 | DNA甲基轉移酶[[Eubacterium infirmum]

[真桿菌] infirmum] GI | 492845765 |

也就是說,我只想保留gi號和生物名稱(在gi號前面加上生物名稱),並刪除“額外”信息(在這種情況下,參考號和“ DNA甲基轉移酶” )。

我會做re.sub(r“(\\ w + | \\ w + |)\\ w + | \\ w_ \\ w | \\ s \\ w + \\ s \\ w \\ s([。]),\\ 2 \\ 1,行)

(或類似的東西)

但是,我的數據的其他幾行在“額外”信息中有兩個以上的單詞。 例:

GI | 548229945 |裁判| WP_022448665.1 | dNA(Cytosine-5-)-methyltransferase [Roseburia sp。 CAG:303]

我將如何編寫一個正則表達式來重命名我的所有數據,以使有機體名稱位於最前面,gi編號位於其下,其他所有內容都被刪除?

這可能會滿足您的要求:

(\w+\|\d+\|)(?:.*\s)(\[\S*)(?:\s)(.+\])

使用\\2\\3\\1作為替換模式, $2$3$1似乎相同。

re.sub(r'(\w+\|\d+\|)(?:.*\s)(\[\S*)(?:\s)(.+\])', \2\3\1, line)

例如: http//regex101.com/r/aP6lB9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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