我有一个网址如下:
{anydomain}/my-app/test/b5/
我想测试my-app/
之后/test/b5
之后的所有字符如下:
test
- 允许所有内容 - 包括下划线在内的所有字符
for b5
- 我正在寻找只允许一个数字
我有以下内容,但它失败了:
Pattern.compile("/(\\w()|-)+/(/^(?![0-9]*$)[a-zA-Z0-9]+$/()|-)+(/)?");
/(\\w()|-)
- 检查测试并正常工作
/(/^(?![0-9]*$)[a-zA-Z0-9]+$/()|-)
- 应该检查b5但是失败了。
我需要正则表达式的最后一部分。任何帮助将不胜感激。
答案 0 :(得分:0)
你的正则表达是不必要的长。几点:
\w
转换为[a-zA-Z_0-9]
()
没用,因为括号用于分组。$
表示输入文本结尾的匹配项。回答问题。给出你在那里的格式的部分网址,这将验证你的字符串:
/[\w]+/([^\d]+|[^\d]*\d[^\d]*)/$
/[\w]+
用于第一部分(测试)。
/([^\d]+|[^\d]*\d[^\d]*)/$
以/
开头,查找所有非数字,直到/$
或1位数字包围可选的非数字。