Regex动态替换java中的文本
我想做的是做如下的事情:Regex动态替换java中的文本,java,regex,Java,Regex,我想做的是做如下的事情: some random stuff substitute("random stuff","xxx") test 替换为以下内容: some xxx test 如果我使用: substitute\((.*?)*\) 我找到了部分,但我最终想要的是多个组,其中第一组是要搜索的文本,第二组是要替换的文本。我希望它足够通用,所以我不依赖于,,因为它可以出现在任何地方。是否有一个正则表达式可以适用于所有情况,或者我应该依赖“”来获得我需要的东西?没有测试过它,但您可以尝试一
some random stuff substitute("random stuff","xxx") test
替换为以下内容:
some xxx test
如果我使用:
substitute\((.*?)*\)
我找到了部分,但我最终想要的是多个组,其中第一组是要搜索的文本,第二组是要替换的文本。我希望它足够通用,所以我不依赖于
,
,因为它可以出现在任何地方。是否有一个正则表达式可以适用于所有情况,或者我应该依赖“”来获得我需要的东西?没有测试过它,但您可以尝试一下
\w*\(\"(.*)\".*\"(.*)\"\)
如果替换中的顺序没有改变,则在第一组中有搜索,在第二组中有替换项。
是的,我看不到其他方法,但取决于()和“”。您需要一个正则表达式吗?似乎首先找到
substitute(…)
部分更容易,然后执行它在第二次调用中指定的替换,然后删除substitute(…)
位。不能使用StringI的replace
方法,我可以分两步完成。我真正困惑的是如何轻松获取第一个和第二个参数,特别是如果参数可以包含任何内容,逗号,()等等。我认为,要在一步中完成,您需要通过回溯使用前向引用,但这将是一项详尽的任务。或者我应该依靠“”来获取我需要的内容吗?如果实现起来很简单,那么获取参数就很容易了。谢谢Ben。需要针对不同的组合进行更多的测试,但似乎在基本测试上做到了这一点。非常感谢您的帮助。我对特定角色前后的空格做了一些细微的修改,这是非常重要的,但是这种方法在一般情况下非常有效。再次感谢你的帮助。