字符串#xxx#的Java Matcher格式

时间:2013-04-27 12:29:44

标签: java

我必须得到符号#(String)#。

之间的字符串

我怎样才能实现它?

2 个答案:

答案 0 :(得分:3)

您可以使用这样的正则表达式:

Pattern p = Pattern.compile("#(.*?)#");
Matcher m = p.matcher(yourString);
System.out.println(m.find() ? m.group(1) : "No match");

或者,您可以按#分开:

String[] tokens = yourString.split("#");
System.out.println(tokens.length >= 3 ? tokens[1] : "No match");

这些都会获得第一个令牌,即如果你有this#is a#string#it is stringy#okay则会返回is a。如果您需要从第一个#到最后一个匹配,则可以通过删除?(延迟匹配符号)来修改正则表达式。

如果您想获得所有令牌,只需打印第二个示例中的所有值,而不是仅打印第二个索引中的值。

答案 1 :(得分:2)

尝试String class.

indexOfsubstring方法
String str = "#(String)#";
String result = str.substring(str.indexOf("#")+1 , str.lastIndexOf("#"));