我必须得到包含在符号#(String)# 之间的字符串。
我怎样才能实现它?
你可以使用这样的正则表达式:
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
。如果您需要它从第一个匹配#
到最后一个,您可以通过删除?
(惰性匹配符号)来修改正则表达式。
如果要获取所有标记,只需打印第二个示例中的所有值,而不仅仅是第二个索引处的值。
String 类的TryindexOf
和substring
方法。
String str = "#(String)#";
String result = str.substring(str.indexOf("#")+1 , str.lastIndexOf("#"));