2011-11-01 141 views
0

我陷入了一个简单的正则表达式问题。 我想要做的是检查一个URL,看它是否包含单词ajax,如果它匹配了URL。正则表达式网址检查

例如 给定的URL本地主机/ AJAX /图像/获取 应该匹配,并返回本地主机/ AJAX /图像/获取

不过本地主机/图像/获取 应该不匹配。

我有正则表达式的基本知识,但没有能够得到任何工作。

有什么建议吗?我相信这是一个相当简单的例子。

我用这对国防部重写规则

国防部重写规则重写规则 ^。 ?\ bajax \ b。 $ ajax.php?URL = $ 1 [PT,L]

URL请求http://localhost:93/public/ajax/image/

它重定向到ajax.php文件,但URL值不会保留。

我有另一个规则是如下 重写规则^(。*)$的index.php?URL = $ 1 [PT,L]

URL请求http://localhost:93/public/imgage/get/

当该重定向到一个普通index.php文件有/公/图像/获取/ url中的GET价值

+0

将'/ ajax /'永远作为这样的请求的根文件夹? – Clive

+0

不总是,只要它的部分url – madlad

回答

1

我解决了这个问题,我正在寻找的正则表达式是 ^(。ajax。()$

我一直在尝试^(ajax)$但这没有任何意义。

感谢您的帮助

0

什么

[a-z/]*ajax[a-z/]* 

它可以使用一些细化,所以让我硝酸钾如果需要改进的话。

+0

我不认为这将匹配,因为我不认为它不会匹配http://部分。我已经试过这个,它不符合 – madlad

+0

是xxxx://部分总是会在那里?如果是这样,请尝试[az] +:// [az ._/- ] * ajax [az ._/- ] * –

1

简单的正则表达式。你有多个标签,所以我不太清楚你的平台是什么。如果是用java:

Pattern regex = Pattern.compile("^.*?\\bajax\\b.*$"); 

一般来说,这应该是正则表达式:

/^.*?\bajax\b.*$/ 

说明:

"^" +  // Assert position at the beginning of the string 
"." +  // Match any single character that is not a line break character 
    "*?" +  // Between zero and unlimited times, as few times as possible, expanding as needed (lazy) 
"\\b" +  // Assert position at a word boundary 
"ajax" + // Match the characters “ajax” literally 
"\\b" +  // Assert position at a word boundary 
"." +  // Match any single character that is not a line break character 
    "*" +  // Between zero and unlimited times, as many times as possible, giving back as needed (greedy) 
"$"   // Assert position at the end of the string (or before the line break at the end of the string, if any) 

最后我建议this进一步阅读。

+0

嗨,感谢您的帮助,这是我正在尝试的正则表达式之一, 。然而,使用netbeans插件来测试正则表达式和Apache mod_rewrite URL,我将放置规则的位置似乎都不匹配。我有4个标签,因为我必须有4个标签才能提出问题。我会发布我的mod_rewrite规则和URL我打 – madlad

0

它应该是这么简单:

Pattern.matches(regex, str) 

所以

Pattern.matches( “AJAX”,STR)

其中str被传入的URL字符串

+0

您好保罗,我用它在一个国防部重写,因为我在一个netbeans插件测试正则表达式,我需要把4个标签放在我把问题java作为标签。请参阅上面的额外注释 – madlad

+0

@Paul这也将匹配blajaxbla – FailedDev

+0

@failedDev如果您使用“ajax”,则不会。 – Standage