簡體   English   中英

集合符號的特定Java正則表達式

[英]Specific Java Regex For Set Notation

我正在嘗試編寫一個正則表達式來檢查字符串是否以整數集的形式出現

ex: {1, 23, -501, 52, 2387329, 0}

到目前為止,我已經:

Pattern p = [({(([0-9]+,)*[0-9]+)})]

但這似乎不起作用...有人可以幫我嗎?

謝謝!

Pattern.compile("\\{\\s*(?:\\d+(?:\\s*,\\s*\\d+\\s*)*)?\\}")

匹配包含零個或多個逗號分隔的非負十進制整數的大括號。

\\\\s匹配任何空格字符。 (?:...)僅用於分組,大括號之間的內容實際上是可選的(十進制數字后跟(任意數量的逗號,然后是十進制數字))。

我不知道你用什么符號

 [({(([0-9]+,)*[0-9]+)})] 

但它絕對不會與空集匹配,並且不會與逗號后的空格匹配。

試試這個正則表達式

"\\{((-?\\d+), ?)*-?\\d+}"

試試看

        String data = "{1, 23, -501, 52, 2387329, 0}";
    Pattern pattern = Pattern.compile("\\{(\\s?-?\\d+?\\,?\\s?)+?\\}");

    Matcher matcher = pattern.matcher(data);
    while (matcher.find()) {
        // Indicates match is found. Do further processing
        System.out.println(matcher.group());
    }

暫無
暫無

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

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