我遇到了一个简单的正则表达式问题。 我想要做的是检查一个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 /
答案 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字符串。