当前位置:  开发笔记 > 编程语言 > 正文

在java字符串中替换正则表达式

如何解决《在java字符串中替换正则表达式》经验,为你挑选了2个好方法。

我有这个java字符串:

String bla = "invalid_content";

如何更换"invalid_content"文章?

我知道我应该使用这样的东西:

bla.replaceAll(regex,"new_content");

为了有:

"new_content";

但我无法发现如何创建正确的正则表达式

请帮忙 :)



1> Mark Davidso..:

你可以做点什么

String ResultString = subjectString.replaceAll("()(.*)()", "$1whatever$3");



2> Peter Bought..:

Mark的答案可行,但可以通过两个简单的更改来改进:

如果您不使用该组,则中心括号是多余的.

如果你有多个my:string标签匹配,那么让它变得非贪婪会有所帮助.

赠送:

String ResultString = SubjectString.replaceAll
    ( "().*?()" , "$1whatever$2" );


但这仍然不是我写的方式 - 可以使用lookbehind和lookahead简化替换,并且可以避免重复标记名称,如下所示:

String ResultString = SubjectString.replaceAll
    ( "(?<=<(my:string)>).*?(?=)" , "whatever" );

当然,对于那些还不了解正则表达式的人来说,后者可能不那么友好 - 但是它更易于维护/灵活,所以如果你需要匹配的不仅仅是我的:字符串标签,那么值得使用.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有