Java正则表达式-url,用于测试“之后的单词”/&引用;

Java正则表达式-url,用于测试“之后的单词”/&引用;,java,regex,Java,Regex,我有一个url,如下所示: {anydomain}/my-app/test/b5/ 我想测试my app/后面的所有字符,它们是/test/b5,如下所示: {anydomain}/my-app/test/b5/ 测试-允许所有内容-所有字符,包括下划线 对于b5-我正在寻找只允许一个数字的正则表达式 我已准备好以下内容,但它失败了: Pattern.compile("/(\\w()|-)+/(/^(?![0-9]*$)[a-zA-Z0-9]+$/()|-)+(/)?"); /(\\w()

我有一个url,如下所示:

{anydomain}/my-app/test/b5/
我想测试
my app/
后面的所有字符,它们是
/test/b5
,如下所示:

{anydomain}/my-app/test/b5/
测试
-允许所有内容-所有字符,包括下划线

对于
b5
-我正在寻找只允许一个数字的正则表达式

我已准备好以下内容,但它失败了:

Pattern.compile("/(\\w()|-)+/(/^(?![0-9]*$)[a-zA-Z0-9]+$/()|-)+(/)?");
/(\\w()|-)
-检查测试并正常工作

/(/^(?[0-9]*$)[a-zA-Z0-9]+$/()|-)
-本应检查b5,但失败


我需要正则表达式的最后一部分。任何帮助都将不胜感激。

您的正则表达式过长。几点:

  • \w
    翻译成
    [a-zA-Z_0-9]
  • ()
    是无用的,因为括号用于分组
  • $
    表示输入文本结尾的匹配项
  • 我想知道答案。给定您所在格式的部分url,这将验证您的字符串:

    /[\w]+/([^\d]+|[^\d]*\d[^\d]*)/$
    
    /[\w]+
    用于第一部分(测试)

    /([^\d]+|[^\d]*\d[^\d]*)/$
    说从
    /
    开始,查找所有非数字,直到
    /$
    为止,或者查找由可选非数字包围的1个数字