用于URL匹配的正则表达式

时间:2015-08-10 10:10:05

标签: regex

我想在两个网址下方匹配。

1. /,a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpcallback=r.jsonpcallback,fn.push(o)),s&&x.isfunction(a)&&a(s[0]),s=a=t}),

2. /,a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpcallback=d.jsonpcallback,ce.push(f)),h&&p.isfunction(g)&&g(h[0]),h=g=b}),

对于那个正则表达式是:

^[a-zA-Z0-9:\/\.,\[\]\=\(\) \{\}\=\&]{0,500}$

但是上面提到的Reg-ex匹配:

https://www.test.com/test/test/test.php

我想写一下reg-ex所有特殊字符,如[] {}()& ,.在上面两个URL是强制性的,但如果这一切都提到特殊字符不可用,那么reg-ex不应该匹配。

1 个答案:

答案 0 :(得分:1)

简答

^(?=.*\[)(?=.*])(?=.*\{)(?=.*})(?=.*\()(?=.*\))(?=.*&)(?=.*,)(?=.*\.)[a-zA-Z0-9:\/\.,\[\]\=\(\) \{\}\=\&]{0,500}$

更长的答案

您可以使用正向前瞻以确保结果包含一组字符。

例如,将其添加到开头:

(?=.*\[)

它只会匹配包含左方括号[

的结果

您可以为确保存在的每个特殊字符执行此操作。

例如,如果您想确保其中包含所有字符[]{}()&,.,那么您可以在开头添加:

(?=.*\[)(?=.*\])(?=.*\{)(?=.*\})(?=.*\()(?=.*\))(?=.*\&)(?=.*\,)(?=.*\.)

请确保根据您的编程语言和正则表达式的类型来逃避相关字符