簡體   English   中英

URL參數字符串的正則表達式Java

[英]regular expression java for URL parameter string

我正在嘗試驗證字符串是否與正則表達式匹配。 URL格式為: key=value&key=value&....

鍵或值可以為空。

我的代碼是:

Pattern patt = Pattern.compile("\\w*=\\w*&(\\w *=\\w*)* ");
Matcher m = patt.matcher(s);
if(m.matches()) return true;
else return false;

當我輸入one=1&two=2 ,它顯示為false,而應顯示為true。 任何想法 !

您需要的正則表達式是

Pattern.compile("(?:\\w+=\\w*|=\\w+)(?:&(?:\\w+=\\w*|=\\w+))*");

參見regex演示 它將匹配:

  • (?:\\\\w+=\\\\w*|=\\\\w+) -1+個單詞字符后跟= ,然后0+單詞字符(必選鍵,可選值)或=后跟1+單詞字符(可選鍵) )
  • (?:&(?:\\\\w+=\\\\w*|=\\\\w+))* -零個或多個上述序列。

Java演示

String s = "one=1&two=2&=3&tr=";
Pattern patt = Pattern.compile("(?:\\w+=\\w*|=\\w+)(?:&(?:\\w+=\\w*|=\\w+))*");
Matcher m = patt.matcher(s);
if(m.matches()) {
    System.out.println("true");
} else {
    System.out.println("false");
}
//  => true

要允許空格,請在需要\\\\s*地方添加\\\\s* 如果還需要允許非單詞字符,請使用[\\\\w.-]代替\\w來匹配單詞字符. - (在字符類的末尾保留- )。

暫無
暫無

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

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