gpt4 book ai didi

java - 有条件地将字符添加到正则表达式匹配

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:21 25 4
gpt4 key购买 nike

我在 Eclipse 中使用正则表达式,想知道是否有一种方法可以根据匹配添加字符。

我正在使用这些表达式来匹配和替换:

Match: ^(\s*)(//)?(.*?)"([\p{Punct}\p{Space}]*)?(\p{Alnum}.*?\p{Alnum})([\p{Punct}\p{Space}]*)?"(.*?)$
Replace: $1$3"$4" \+ i18n.tr\("$5"\) \+ "$6"$7

例如

System.err.println("Unexpected number of guests: ");

我正在尝试将其替换为

System.err.println(i18n.tr("Unexpected number of guests") + ": ");

但是我得到了

System.err.println("" + i18n.tr("Unexpected number of guests") + ": ");

如果没有捕获任何内容,有什么方法可以去掉 i18n.tr(.*) 前面的 ""+ 吗?

最佳答案

你不能用一个搜索替换来做到这一点!

唯一的方法是使用两个搜索替换:

  • 第一个用punct-space

匹配:^(\s*)(//)?(.*?)"([\p{Punct}\p{Space}]++)(\p{Alnum}.*?\p{Alnum})([\p{Punct}\p{Space}]*)?"(.*?)$

替换:$1$3"$4"\+ i18n.tr\("$5"\)\+ "$6"$7

  • 第二个没有点空格

匹配:^(\s*)(//)?(.*?)"(\p{Alnum}.*?\p{Alnum})([\p{Punct}\p{空格}]*)?"(.*?)$

替换:$1$3i18n.tr\("$4"\)\+ "$5"$6

不要忘记在尝试之前进行备份

关于java - 有条件地将字符添加到正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16180884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com