首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式替换匹配的第一次出现

正则表达式替换匹配的第一次出现
EN

Stack Overflow用户
提问于 2022-09-06 21:56:13
回答 1查看 51关注 0票数 -2

简单的判读问题。我有一个字符串,格式如下:

代码语言:javascript
复制
string = """陣頭には見るも<RUBY text="いかめ">厳</RUBY>しい、厚い鎧姿の武士達が立つ。
 分厚い鉄甲、長大な太刀――彼らの<RUBY text="かも">醸</RUBY>し出す威圧感
は、一騎のみでも背後の兵全てに優る戦力たり得ると
いう事実を、何より雄弁に物語っている。"""

查找<RUBY text="something">something</RUBY>的第一次出现并替换为类似于HELLO的正则表达式是什么?

代码语言:javascript
复制
 陣頭には見るもHELLOしい、厚い鎧姿の武士達が立つ。
 分厚い鉄甲、長大な太刀――彼らの<RUBY text="かも">醸</RUBY>し出す威圧感
は、一騎のみでも背後の兵全てに優る戦力たり得ると
いう事実を、何より雄弁に物語っている。

我尝试过(){0},但这没有起作用。

代码语言:javascript
复制
string = re.sub("(\<R(.*?)\/RUBY>){0}", "HELLO", string)
print(string)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-07 04:57:04

可以这样做:

代码语言:javascript
复制
string = """陣頭には見るも<RUBY text="いかめ">厳</RUBY>しい、厚い鎧姿の武士達が立つ。
 分厚い鉄甲、長大な太刀――彼らの<RUBY text="かも">醸</RUBY>し出す威圧感
は、一騎のみでも背後の兵全てに優る戦力たり得ると
いう事実を、何より雄弁に物語っている。"""

try:
    first_match = re.findall(r'<RUBY text=.*</RUBY>', string)[0]
    parts = string.split(first_match)
    result = f'{parts[0]}HELLO{first_match.join(parts[1:])}'
except IndexError:
    result = string

print(result)

结果:

代码语言:javascript
复制
陣頭には見るもHELLOしい、厚い鎧姿の武士達が立つ。
 分厚い鉄甲、長大な太刀――彼らの<RUBY text="かも">醸</RUBY>し出す威圧感
は、一騎のみでも背後の兵全てに優る戦力たり得ると
いう事実を、何より雄弁に物語っている。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73628130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档