输入:
str = "(samebib(A, B, 4.0) :- author(A, UniqueVar1), author(B, UniqueVar1), !)"
预计op:
str = "samebib"
正如在我需要前两个开放式paranthesis之间的文本。
Code Tried:
str.replaceAll("[\\])},].*", "")
OP:
str = "(samebib(A"
我在正则表达方面不强。请,任何建议都会有所帮助。
答案 0 :(得分:3)
尝试使用此正则表达式\((.*?)\(
,其模式如下:
String input = "(samebib(A, B, 4.0) :- author(A, UniqueVar1), author(B, UniqueVar1), !)";
Pattern p1 = Pattern.compile("\\((.*?)\\(");
Matcher m = p1.matcher(input);
if (m.find()) {
System.out.println(m.group(1));
}
<强>输出强>
samebib
注意强>
我使用if而不是只是为了获取第一个输入,如果你想得到你可以使用的所有输入。
答案 1 :(得分:2)
最简单的方法是:
String[] parts = str.split("\\(");
System.out.println(parts[1]);