繁体   English   中英

如何在Java中将字符串与通配符匹配

[英]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)

简单如:

\*\.log

您可以随时在这里查看:

https://www.regex101.com/r/vK7mQ6/2

您可以使用以下代码:

String name="test.log";
if (name.matches("^.+\\.log$") ) {
    System.out.println("Okay");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM