-3

我必须得到包含在符号#(String)# 之间的字符串。

我怎样才能实现它?

4

2 回答 2

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。如果您需要它从第一个匹配#到最后一个,您可以通过删除?(惰性匹配符号)来修改正则表达式。

如果要获取所有标记,只需打印第二个示例中的所有值,而不仅仅是第二个索引处的值。

于 2013-04-27T12:32:31.010 回答
2

String 类的TryindexOfsubstring方法。

String str = "#(String)#";
String result = str.substring(str.indexOf("#")+1 , str.lastIndexOf("#"));
于 2013-04-27T12:31:00.217 回答