gpt4 book ai didi

java - URL参数字符串的正则表达式java

转载 作者:行者123 更新时间:2023-12-04 03:11:45 25 4
gpt4 key购买 nike

我正在尝试验证字符串是否与正则表达式匹配。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 demo .它将匹配:

  • (?:\\w+=\\w*|=\\w+) - 1+ 字字符后跟 = 然后 0+ 字字符 (强制键,可选值)或 = 后跟 1+ 个单词字符(可选键)
  • (?:&(?:\\w+=\\w*|=\\w+))* - 零个或多个上述序列。

Java demo :

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*。如果您还需要允许非单词字符,请使用 [\\w.-] 而不是 \w 来匹配单词字符 .-(将 - 保留在字符类的末尾)。

关于java - URL参数字符串的正则表达式java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44718325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com