**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
8小时前关门了。
Improve this question
我尝试用regex进行模式匹配,我尝试用两种方法将String对象传递给正则表达式,如下所示:
String text = "Hello world!"
String endText = "world!"
//Method 1
text.matches(".*" + endText + "$");
//Method 2
Pattern pt = Pattern.compile(".*" + endText + "$");
Matcher mt = pt.matcher(text);
return mt.matches();
我期望一个布尔返回值,但两次我都收到这个错误:Unclosed group near index 6 .\*:-($
我哪里做错了?
1条答案
按热度按时间kiayqfof1#
正则表达式中有很多字符是特殊字符,
(
字符就是其中之一。如果在正则表达式中放入未转义、未加引号的
(
,则必须包含相应的)
。一个解决办法是引用你的文字:
一个更好的解决方案是在不需要正则表达式时避免使用它们。这些方法可能看起来很短,但正则表达式匹配是一个相当昂贵的操作。在您的情况下,您可以只使用String的endsWith方法: