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