[英]Validate a user input string to match specific pattern using regex in java
[英]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解析器驗證方括號中的內容,那么它可能比正則表達式更可取。
演示在這里:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.