簡體   English   中英

正則表達式驗證輸入字符串

[英]Regex to validate input string

如果它們符合以下格式,則需要驗證輸入字符串。

[composite={key1: value1, key2:value2....., keyn:valuen }]

這個正則表達式可以嗎 不是正則表達式專家。

\[composite\s*=\s*{(.*?)}\] 

您的模式幾乎看起來是正確的,除了括號是正則表達式的元字符,還需要轉義:

String input = "[composite={key1: value1, key2:value2}]";
String pattern = "\\[composite\\s*=\\s*\\{\\s*[A-Za-z0-9]+\\s*:\\s*[A-Za-z0-9]+\\s*(?:,\\s*[A-Za-z0-9]+\\s*:\\s*[A-Za-z0-9]+\\s*)*\\}\\]";
if (input.matches(pattern)) {
    System.out.println("match");
}

我還修改了您的模式,以檢查是否有逗號分隔的鍵值對,並帶有可選的空格。 這是有效的輸入列表:

[composite={key1: value1}]
[composite={key1: value1 , key2 : value2}]
[composite={key1: value1 , k:v   , key:value, abc:123 }]

請注意,如果您可以使用JSON解析器驗證方括號中的內容,那么它可能比正則表達式更可取。

演示在這里:

Rextester

暫無
暫無

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

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