gpt4 book ai didi

regex - 如何在同一个正则表达式中使用捕获的组

转载 作者:行者123 更新时间:2023-12-03 16:01:31 30 4
gpt4 key购买 nike

mFoo = foo;
mBar = bar;
// convert to
this.foo = foo;
this.bar = bar;

如何使用正则表达式来处理这种替换?请帮忙。这是我在 Android Studio (IntelliJ IDEA) 中使用的方法 Edit -> Find -> Replace in Path
Text to find: m([A-Z])([A-Za-z0-9]+) = L$1$2
Replace with: this\.L$1$2 = L$1$2

更新
L上面是一个错字。应该是 \L根据 JetBrains' document

最佳答案

您可以使用带有反向引用的模式,并将“=”后的最后一个词分组:

要查找的文本:

m([A-Z])([A-Za-z0-9]+) = (L\1\2)



替换为:

this.L$1$2 = $3



在您发表评论后,我了解到您对小写/大写字符也有问题。所以试试这个模式(我也简化了正则表达式):
m(\p{Alpha})(\w+) = (((?i)\1)\2)

这个替换字符串:
this\.L$1$2 = $3

因此,对于带有输入文本的示例:
mContext = context

你得到这个:
this.LContext = context

我不知道您的文本/替换字符串中指定的“L”是否是您的拼写错误或其他错误,但如果是这样,您可以通过以下方式更改“替换字符串”:
this\.$3 = $3

所以你可以得到这个:
this.context = context

如果这对您有帮助,请告诉我!

关于regex - 如何在同一个正则表达式中使用捕获的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34973048/

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