1

我如何在每两个标签(<tagname></tagname>)之间获取一些文本,在更改这两个标签的文本后,我需要完整的字符串以及更改。想想,这是 java 字符串内容。

改变前


“Lorem ipsum dolor <tagname>text to be changed 1</tagname>amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。Ut enim ad minim veniam, quis nostrud <tagname>text to be changed 2</tagname>laboris nisi ut aliquip ex ea ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。Exceptioneur sint <tagname>text to be changed 3</tagname>cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。


改了之后应该是这样的


“Lorem ipsum dolor <tagname>text changed 1</tagname>amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。Ut enim ad minim veniam, quis nostrud <tagname>text changed 2</tagname>laboris nisi ut aliquip ex ea ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。Exceptioneur sint <tagname>text changed 3</tagname>cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。


实际上我需要这样的方法,

String getChangedString(String toBeChanged){
   //process
   return changedString;
}

我怎么能得到这个。

谢谢。

4

4 回答 4

2
String getChangedString(String toBeChanged){
   String changedString = toBeChanged;

   while (changedString.indexOf("<tagname>") >= 0)
   {
     changedString = changedString.substring(0, changedString.indexOf("<tagname>")) +
       "whatever replacement string" +
       changedString.substring(changedString.indexOf("</tagname>") + "</tagname>".length());
   }


   return changedString;
}
于 2012-10-02T06:53:14.113 回答
1

假设标签在 XML 文件中,您应该使用现有的 XML 解析器之一,例如 DOM 或 SAX,而不是重新发明轮子。

于 2012-10-02T07:26:36.437 回答
1

我一直在寻找相同的,也许这个问题可以帮助你,看看: Java regex to extract text between tags

它使用正则表达式来获取标签之间的文本内容。就我而言,我有兴趣从我的 xml 中找到的第一个标签中获取文本,而不是从每个标签中获取文本

于 2012-10-26T19:40:27.440 回答
1

org.apache.commons.lang.StringUtils 中有一个完美的基于字符串解析的实用程序,下面的代码非常适合我。

String title = StringUtils.substringBetween(testHtml, "<title>", "</title>");
System.out.println("title:" + title); // good
于 2016-03-15T10:38:41.037 回答