使用java.util.regex API的正则表达式-java
如何创建正则表达式来搜索具有给定模式的字符串?例如,我想搜索与模式“*index.tx”匹配的所有字符串。现在应该可以找到值为index.txt、maindex.txt和somethinginindex.txp的字符串使用java.util.regex API的正则表达式-java,java,regex,Java,Regex,如何创建正则表达式来搜索具有给定模式的字符串?例如,我想搜索与模式“*index.tx”匹配的所有字符串。现在应该可以找到值为index.txt、maindex.txt和somethinginindex.txp的字符串 Pattern pattern = Pattern.compile("*.html"); Matcher m = pattern.matcher("input.html"); 此代码显然不起作用。您需要这样做。这与使用通配符不同。试试这个: Pattern pattern =
Pattern pattern = Pattern.compile("*.html");
Matcher m = pattern.matcher("input.html");
此代码显然不起作用。您需要这样做。这与使用通配符不同。试试这个:
Pattern pattern = Pattern.compile("^.*index\\.tx.$");
关于正则表达式有很多信息。在学习正则表达式时,您可能会发现该程序很有用。您需要这样做。这与使用通配符不同。试试这个:
Pattern pattern = Pattern.compile("^.*index\\.tx.$");
关于正则表达式有很多信息。在学习正则表达式时,您可能会发现该程序很有用。
*
匹配前面标记的零次或多次出现,因此如果要匹配任何字符的零次或多次出现,请改用*
(
匹配任何字符)
修改后的正则表达式应如下所示:
Pattern pattern = Pattern.compile("^.*\\.html$");
匹配字符串的开头^
匹配零个或多个字符*
匹配点字符(如果没有转义,它将匹配任何字符)\\.
匹配字符串的结尾$
*
匹配前面标记的零次或多次出现,因此如果要匹配任何字符的零次或多次出现,请改用*
(
匹配任何字符)
修改后的正则表达式应如下所示:
Pattern pattern = Pattern.compile("^.*\\.html$");
匹配字符串的开头^
匹配零个或多个字符*
匹配点字符(如果没有转义,它将匹配任何字符)\\.
匹配字符串的结尾$
是一个特殊的正则表达式字符。它表示任何字符的一个实例*
表示前面字符出现的任意次数*
表示任何字符出现的次数
所以你需要像这样的东西
Pattern pattern = Pattern.compile(".*\\.html.*");
之所以使用\\
,是因为我们想插入点,尽管它是一个特殊的正则表达式符号。
这意味着:匹配一个字符串,其中首先有任意数量的通配符,后跟一个点,后跟
html
,后跟任何字符。您发布的代码无效,因为:
是一个特殊的正则表达式字符。它表示任何字符的一个实例*
表示前面字符出现的任意次数*
表示任何字符出现的次数
所以你需要像这样的东西
Pattern pattern = Pattern.compile(".*\\.html.*");
之所以使用\\
,是因为我们想插入点,尽管它是一个特殊的正则表达式符号。
这意味着:匹配一个字符串,其中首先有任意数量的通配符,后跟一个点,后跟html
,后跟任何字符