找到bbCode之间的文本

时间:2014-07-24 14:31:14

标签: java regex bbcode

我试图从字符串中删除BBCode。

这是myString:

String wording = "Teststring 
[URL=\"http://www.test.ch/status\"]http://www.test.ch/status[/URL] [IMG]http://sit.corproot.net/uploads/659_untitled.png[/IMG] \n\n"

我已经尝试过这个:

  wording?.replaceAll("\\[URL=\".*\\](.*?)\\[/URL\\]", "")

我的目标字符串应为:

Teststring http://www.test.ch/status \n\n"

但是当我运行代码时,它并没有替换任何东西

我做错了什么?

亲切的问候

2 个答案:

答案 0 :(得分:0)

正则表达式:

\s*\[URL=\\".*\](.*?)\[\/URL\]|\s*\[IMG\].*?\[\/IMG\]\s*

Java正则表达式字符串将是,

"\\s*\\[URL=\\\\\".*\\](.*?)\\[\\/URL\\]|\\s*\\[IMG\\].*?\\[\\/IMG\\]\\s*"

替换字符串:

 $1

DEMO

答案 1 :(得分:0)

public static void main(String[] args) {

  String s = "Teststring URL=\"http://www.test.ch/status\"]http://www.test.ch/status[/URL] [IMG]http://sit.corproot.net/uploads/659_untitled.png[/IMG] \n\n";

  Pattern p = Pattern.compile("(?s)^(\\w+)[^\\[]+\\[URL=\"(.*)\"\\].*");
  Matcher m = p.matcher(s);

  if (m.matches()) {
      System.out.println(String.format("%s %s \\n\\n", m.group(1), m.group(2)));
  }

}

输出:

Teststring http://www.test.ch/status \n\n