我有以下代码段:
function test(){
try {
---------------some contents-------
}
catch(e){
}
}
现在,我想要第一对花括号之间的代码。输出应该是:
try {
---------------some contents-------
}
catch(e){
}
无论是否使用Regex,我该怎么做?我尝试使用以下正则表达式:
Pattern p = Pattern.compile("\\{([^}]*)\\}");
Matcher m = p.matcher(s); // s contains each line of the above text
while (m.find()) {
System.out.println(m.group(1));
}
但是,如果内容存在于一行或没有多行括号,它只会获取内容。
答案 0 :(得分:1)
您可以搜索better
使用substr
和indexOf
/ lastIndexOf
:
function test(){
try { /*---------------some contents-------*/ }
catch(e) {}
}
var testStr = String(test);
testStr = testStr.substr(testStr.indexOf('{') + 1);
document.querySelector('#result').textContent =
testStr.substr(0, testStr.lastIndexOf('}'));

<pre id="result"></pre>
&#13;
答案 1 :(得分:0)
试一试:
String s = "function test(){"
+ "try {"
+ "---------------some contents-------"
+ "}"
+ "catch(e){"
+ "}"
+ "}";
int bracketStartIndex = s.indexOf("{");
System.out.println("START INDEX = " + bracketStartIndex);
int bracketEndIndex = s.lastIndexOf("}");
System.out.println("END INDEX = " + bracketEndIndex);
System.out.println("OUTPUT STRING : " + s.substring(bracketStartIndex, bracketEndIndex));