gpt4 book ai didi

Java 正则表达式匹配器不工作

转载 作者:行者123 更新时间:2023-11-30 08:25:07 25 4
gpt4 key购买 nike

我正在尝试掌握模式和匹配器的窍门。此方法应使用正则表达式模式遍历州首府数组并返回与该模式对应的一个或多个州。当我检查整个字符串(如“tallahassee”或“salt lake city”)但检查“^t”之类的字符串时,该方法工作正常我没有得到什么?

这是调用它的方法和主要方法:

public ArrayList<String> getState(String s) throws RemoteException 
{
Pattern pattern = Pattern.compile(s);
Matcher matcher;
int i=0;
System.out.println(s);
for(String ct:capitalValues)
{
matcher = pattern.matcher(ct);
if(ct.toLowerCase().matches(s))
states.add(stateValues[i]);
i++;
}
return states;
}

public static void main (String[] args) throws RemoteException
{
ArrayList<String> result = new ArrayList<String>();
hashTester ht = new hashTester();

result = ht.getState(("^t").toLowerCase());
System.out.println("result: ");
for(String s:result)
System.out.println(s);


}

谢谢你的帮助

最佳答案

您甚至没有使用 matcher 进行匹配。您正在使用 String#matches() 方法。该方法和 Matcher#matches() 方法都将正则表达式与完整字符串相匹配,而不是它的一部分。所以你的正则表达式应该覆盖整个字符串。如果您只想匹配字符串的一部分,请使用 Matcher#find() 方法。

你应该像这样使用它:

if(matcher.find(ct.toLowerCase())) {
// Found regex pattern
}

顺便说一句,如果你只想看一个字符串是否以t开头,你可以直接使用String#startsWith()方法。这种情况不需要正则表达式。但我想这是这里的一般情况。

关于Java 正则表达式匹配器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com