[英]Java Regex to match “string”
我正在從頭開始創建詞匯,然后進入匹配(")[\\\\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();
REGEXs:
identifier = ^[\\w]+$
operator = ^(\\=)$
string = ^(\")[\\w]+(\")$ // THE PROBLEM
keyword = ^(string)$
這是我正在關注的案例輸入/輸出:
INPUT:
"test"
""
test
string data = "test"
OUTPUT:
string
string
identifier
keyword identifier operator string
更新時間:2013年2月22日
我不知道發生了什么,但是將正則表達式從^(\\")[\\\\w]+(\\")$
更改為^(\\")[\\\\w]*(\\")?$
之后^(\\")[\\\\w]*(\\")?$
正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.