我正在从头开始创建词汇,并且正在进入匹配部分(")[\\w]+(")
。我有这个正则表达式^(\")[\\w]+(\")$
,但它不会捕获字符串。
SSCCE:
Map<String, String> lexicalMap = new HashMap<>();
// add all regex to `lexicalMap` via `lexicalMap.put([regex], [tokentype])`
// Tokenize the string format of the syntax to `List<String> tokens`
// List<String> tokens contains ["string", "data", "=", "test"] on the syntax: string data = "test"
for(String element : tokens) {
for(String regex : lexicalMap.keySet()) {
if(element.matches(regex))
System.out.print(lexicalMap.get(regex) + " ");
}
}
System.out.println();
正则表达式:
identifier = ^[\\w]+$
operator = ^(\\=)$
string = ^(\")[\\w]+(\")$ // THE PROBLEM
keyword = ^(string)$
这是我关注的案例输入/输出:
输入:
"test"
""
test
string data = "test"
输出:
string
string
identifier
keyword identifier operator string
更新时间:2013 年 2 月 22 日
- 添加了 SSCCE 段。