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