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

在java字符串中替换正则表达式,java,regex,string,replace,Java,Regex,String,Replace,我有一个java字符串: String bla = "<my:string>invalid_content</my:string>"; 为了: "<my:string>new_content</my:string>"; “新内容”; 但是我无法发现如何创建正确的正则表达式 请帮帮忙:)你可以这样做 String ResultString = subjectString.replaceAll("(<my:string>)(.*)(&

我有一个java字符串:

String bla = "<my:string>invalid_content</my:string>";
为了:

"<my:string>new_content</my:string>";
“新内容”;
但是我无法发现如何创建正确的正则表达式


请帮帮忙:)

你可以这样做

String ResultString = subjectString.replaceAll("(<my:string>)(.*)(</my:string>)", "$1whatever$3");
String ResultString=subjectString.replaceAll(“()(.*)()”,“$1$3”);

您可以执行以下操作

String ResultString = subjectString.replaceAll("(<my:string>)(.*)(</my:string>)", "$1whatever$3");
String ResultString=subjectString.replaceAll(“()(.*)()”,“$1$3”);
问题将是:

/invalid_content/
为了一个简单的替换。你还想要什么?

答案是:

/invalid_content/

为了一个简单的替换。您还想要什么?

无效内容
固定值吗?如果是这样的话,您可以使用以下内容将其替换为新内容:

bla = bla.replaceAll("invalid_content","new_content");

无效内容是否为固定值?如果是这样的话,您可以使用以下内容将其替换为新内容:

bla = bla.replaceAll("invalid_content","new_content");

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

  • 如果不使用该组,则中括号是多余的
  • 如果要匹配多个my:string标记,则将其设置为非贪婪将有所帮助
给予:

String ResultString = SubjectString.replaceAll
    ( "(<my:string>).*?(</my:string>)" , "$1whatever$2" );
String ResultString=SubjectString.replaceAll
(“()*?()”,“$1任何$2”);

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

bla.replaceAll(regex,"new_content");
String ResultString = SubjectString.replaceAll
    ( "(?<=<(my:string)>).*?(?=</\1>)" , "whatever" );
String ResultString=SubjectString.replaceAll

(“(?马克的答案可行,但可以通过两个简单的改变加以改进:

  • 如果不使用该组,则中括号是多余的
  • 如果要匹配多个my:string标记,则将其设置为非贪婪将有所帮助
给予:

String ResultString = SubjectString.replaceAll
    ( "(<my:string>).*?(</my:string>)" , "$1whatever$2" );
String ResultString=SubjectString.replaceAll
(“()*?()”,“$1任何$2”);

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

bla.replaceAll(regex,"new_content");
String ResultString = SubjectString.replaceAll
    ( "(?<=<(my:string)>).*?(?=</\1>)" , "whatever" );
String ResultString=SubjectString.replaceAll

( "(?查看并签出角色类和捕获组。

查看并签出角色类和捕获组。

可能是一个在Java中工作的解决方案?此外,我认为需要周围的XML标记来识别无效内容,这正是OP遇到的问题。可能是一个在Java中工作的解决方案?除此之外s、 我认为需要使用周围的XML标记来识别无效内容,而OP正是在这方面遇到了问题。