簡體   English   中英

替換捕獲組中的多個字符

[英]Replacing multiple characters in a capturing group

我需要替換大括號的方括號和空格的下划線。

輸入: [something_id='123'_more-info='321']

Output 到目前為止: {something_id='123'_more-info='321'}

需要 Output: {something id='123' more-info='321'}

我可以替換括號,但我不知道從哪里開始在捕獲組中搜索以替換空格。 我什至不確定我應該在 web 中搜索哪些術語來嘗試找到答案。

search = re.compile(r"\[(something.*)\]")
return search.sub(r"{\1}", text_source)

如果您在較長的文本中包含這些文本,請使用可調用對象作為re.sub的替換參數:

import re
text_source = '''Text [something_id='123'_more-info='321'] Text...'''
search = re.compile(r"\[(something[^]]*)]")
print( search.sub(lambda x: f"{{{x.group(1).replace('_', ' ')}}}", text_source) )
# => Text {something id='123' more-info='321'} Text...

請參閱Python 演示

細節

  • \[(something[^]]*)]匹配[ ,然后捕獲something ,然后將]以外的零個或多個字符放入第 1 組,然后匹配]
  • lambda x: f"{{{x.group(1).replace('_', ' ')}}}" - 匹配傳遞給 lambda,其中第 1 組文本用大括號括起來,下划線被替換有空格
  • 請注意,f 字符串中的文字大括號必須加倍。

如果字符串是獨立字符串,則您只需要

text_source = f"{{{text_source.strip('[]').replace('_', ' ')}}}"

暫無
暫無

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

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