我必须得到符号#(String)#。
之间的字符串我怎样才能实现它?
答案 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)
indexOf
和substring
方法
String str = "#(String)#";
String result = str.substring(str.indexOf("#")+1 , str.lastIndexOf("#"));