我需要编写一个匹配值为“* .log”的字符串的正则表达式 我有以下代码,它似乎没有按预期工作。
if (name.matches("\\*\\.log")
当name的值为“* .log”
时,上述语句返回false非常感谢任何帮助。
答案 0 :(得分:3)
你为什么这样做?你不能这样做
if(name.endsWith(".log"))
在我看来,这将是一个更简单的选项,因为任何事情都可以在.log之前,就像你使用通配符一样。
另外,如果你想确保它不仅仅是" .log",那也很简单。
if(name.endsWith(".log") && !name.equals(".log"))
希望我帮了一下!
答案 1 :(得分:1)
我认为这个正则表达式对你有帮助......
^\*\.log$
对于php,
$re = "/\\*\\.log/";
$str = "*.log";
preg_match($re, $str, $matches);
对于JavaScript,
var re = /\*\.log/;
var str = '*.log';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
对于Python,
import re
p = re.compile(ur'\*\.log')
test_str = u"*.log"
re.search(p, test_str)
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用此代码:
String name="test.log";
if (name.matches("^.+\\.log$") ) {
System.out.println("Okay");
}