簡體   English   中英

Java正則表達式匹配“字符串”

[英]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日

  • 添加了SSCCE段。

我不知道發生了什么,但是將正則表達式從^(\\")[\\\\w]+(\\")$更改為^(\\")[\\\\w]*(\\")?$之后^(\\")[\\\\w]*(\\")?$正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM