簡體   English   中英

re.sub 帶括號,刪除日文 ruby 字符

[英]re.sub with brackets, removing Japanese ruby characters

我該如何改變

a = "[ruby(空,ruby=そら)]は[ruby(青,ruby=あお)]い。"

進入

"空は青い。" ?

我試過了

re.sub(r"\[ruby\(.,ruby=.\)\]",".",a)

但根本不工作。

鑒於:

a = "[ruby(空,ruby=そら)]は[ruby(青,ruby=あお)]い。"
desired="空は青い。"

您可以使用更改來刪除子字符串:

>>> s=re.sub(r'\[ruby\(|,ruby=[^)]+\)\]','',a)
>>> s
空は青い。
>>> s==desired
True

您可以使用

a = re.sub(r'\[ruby\(([^(),]*),[^()]*\)]', r'\1', a)

請參閱正則表達式演示 細節:

  • \[ruby\( - 一個[ruby(文本
  • ([^(),]*) - 第 1 組:除( , )和逗號以外的任何文本,出現零次或多次
  • , - 逗號
  • [^()]* - 除()之外的零個或多個字符
  • \)] - a )]文本。

請參閱Python 演示

import re
a = "[ruby(空,ruby=そら)]は[ruby(青,ruby=あお)]い。"
print( re.sub(r'\[ruby\(([^(),]*),[^()]*\)]', r'\1', a) )
# => 空は青い。

暫無
暫無

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

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