簡體   English   中英

Python 正則表達式如何匹配 substring 而無需替換其中的一部分

[英]Python Regex how to match a substring without replace a part of that

我有以下句子:

句子=“工作\n經驗\n\n初體驗......”

Work 
Experience 

 First Experience...

所以,我想刪除工作和體驗之間的“\n”,但同時我不想在體驗之后刪除“\n\n”。

Work Experience 

First Experience...

我嘗試了不同的解決方案,例如:

string = re.sub(" \n{1}[^\n]"," ",sentence)

但它們都刪除了 \n (E) 之后的第一個字符。

更新:感謝@Wiktor,我設法找到了解決方案

print(re.sub(r'\w.*?\w+', lambda x: x.group().replace('\n', ''), 句子, flags=re.S))

如果你想讓它成為一個通用的解決方案來刪除任意數量的\n ,一個換行符,在兩個字符串之間,你可以使用

import re
sentence = "Work \nExperience \n\n First Experience..."
print( re.sub(r'Work.*?Experience', lambda x: x.group().replace('\n', ''), sentence, flags=re.S) )

請參閱Python 演示 Output:

Work Experience 

 First Experience...

帶有re.SWork.*?Experience匹配(包括) WorkExperience之間的任何子字符串,然后在刪除所有換行符時在每次匹配時處理匹配數據 object ( x ) usign .replace('\n', '')並且這些修改后的字符串作為替換模式返回給re.sub

暫無
暫無

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

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