我需要一個正則表達式來匹配組成查詢的字符序列。我查詢的定義的一個例子是這樣的:和(貓,狗)在更一般的定義,它可以表示爲操作(操作數,操作數)它由一個包含運營商2個操作數。這些操作數可以是任何單個字母數字(非數字)或甚至另一個子查詢。一個例子是和(山羊,或(斑馬,熊))運營商是AND,或,而不是和查詢可以得到越來越多的AMBIGUOUS儘可能的程度。查詢中沒有WHITESPACE,我需要在Java應用程序中使用正則表達式。注:A NOT操作員只能有一個操作數,例如不是(老虎)。提前致謝。正則表達式匹配字符序列
1
A
回答
2
作爲操作數的子查詢使得這是不可能的。正則表達式對嵌套的東西來說不夠強大,你需要使用上下文無關的語法。
0
你的問題可能會更復雜,很難猜測你的確切方向。然而,這個簡單的Java例子也許一個很好的起點爲您提供:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String s = "add(1,sub(2,3))";
Pattern p = Pattern.compile("(.*?)\\((.*)\\)");
Matcher m1 = p.matcher(s);
if (m1.matches()) {
System.out.println(m1.group(1));
System.out.println(m1.group(2));
}
System.out.println();
Matcher m2 = p.matcher(m1.group(2));
if (m2.matches()) {
System.out.println(m2.group(1));
System.out.println(m2.group(2));
}
}
}
生產同類產品產量:
add
1,sub(2,3)
1,sub
2,3
相關問題
- 1. 正則表達式正則表達式匹配字符串
- 2. 正則表達式匹配字符串
- 3. 正則表達式匹配除字符
- 4. 正則表達式匹配字符串
- 5. 正則表達式匹配字符串
- 6. 正則表達式匹配字符串
- 7. 正則表達式匹配字符串
- 8. Javascript正則表達式字符匹配
- 9. 正則表達式匹配字符串
- 10. 正則表達式匹配用#字符
- 11. 正則表達式匹配字符串
- 12. 正則表達式匹配字符串
- 13. 正則表達式字符串匹配?
- 14. 正則表達式:不匹配字符串的匹配順序
- 15. 正則表達式序列匹配
- 16. 正則表達式與序列匹配
- 17. 重複字符匹配正則表達式匹配字符串
- 18. 正則表達式則表達式匹配的字符串
- 19. 正則表達式匹配5個字符的序列
- 20. 在正則表達式中匹配字符序列
- 21. 正則表達式 - 從匹配中排除字符序列
- 22. 正則表達式通配符匹配
- 23. Perl正則表達式正則表達式匹配字符串除外,不匹配字符串
- 24. 奇怪的正則表達式(正則表達式)匹配!不匹配數字
- 25. PHP正則表達式匹配一個字符串列表
- 26. 正則表達式來匹配不同的字符串列表
- 27. 使用正則表達式匹配字符串列表
- 28. 匹配字符串列表的正則表達式
- 29. 如何從正則表達式字符匹配的列表
- 30. 正則表達式匹配之間的字符串列表
請不要喊叫。我修復了你的標題。 – 2011-04-07 05:29:56
更好地嘗試解析複雜的表達式,如使用模式的查詢使用詞法和語法分析器,如C世界中的lexx和yacc(bison)。這給你更強大的定義你可以使用的標記和構造規則(語法中的生產規則)。這使用起來非常複雜,但如果您可以使用它,則會變得非常強大。 Google for Java與lexx和yacc for Java替代這些經典。 – 2011-04-07 05:43:32