[英]How to match a string with a wildcard character in java
我需要编写一个正则表达式,该表达式将匹配值“ * .log”的字符串。我有以下代码,它似乎无法按预期工作。
if (name.matches("\\*\\.log")
当name的值为“ * .log”时,以上语句返回false
任何帮助深表感谢。
你为什么要这么做? 你不能只是做
if(name.endsWith(".log"))
在我看来,这似乎是一个更简单的选择,因为任何内容都可以在.log之前,就像您使用通配符一样。
另外,如果要确保它不仅是“ .log”,那也非常简单。
if(name.endsWith(".log") && !name.equals(".log"))
希望我有所帮助!
我认为这个正则表达式将对您有所帮助。
^\*\.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)
您可以使用以下代码:
String name="test.log";
if (name.matches("^.+\\.log$") ) {
System.out.println("Okay");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.