正则表达式Url检查

时间:2011-11-01 22:39:29

标签: java regex apache mod-rewrite

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

例如 给定URL localhost / ajax / image / get 应匹配并返回localhost / ajax / image / get

但是localhost / image / get 不应该匹配。

我对正则表达式有基本的了解,但却无法为它做任何工作。

有什么建议吗?我确信这是一个非常简单的案例。

我将其用于mod重写规则

mod重写规则是 RewriteRule ^。?\ bajax \ b。 $ ajax.php?url = $ 1 [PT,L]

请求的网址http://localhost:93/public/ajax/image/

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

我有另一条规则如下 RewriteRule ^(。*)$ index.php?url = $ 1 [PT,L]

请求的网址http://localhost:93/public/imgage/get/

当重定向到index.php时,它在url GET值中有/ public / image / get /

4 个答案:

答案 0 :(得分: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进一步阅读。

答案 1 :(得分:1)

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

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

感谢您的帮助

答案 2 :(得分:0)

怎么样?
[a-z/]*ajax[a-z/]*

它可以使用一些改进,所以让我知道它是否需要改进。

答案 3 :(得分:0)

应该如此简单:

Pattern.matches(regex, str)

所以

Pattern.matches(“ajax”,str)

其中str是传入的url字符串。