我错过了什么?
这是'dataStoreConstructor'我传递给下面的方法代码 -
url='https://www.salesforce.com/services/Soap/u/26.0',corpnet_prodnet='Corpnet'
public void registerDataStoreInRepository(String dataStoreConstructor) throws DragonException{
String constructorPattern = "url='([^']*?)',corpnet_prodnet='([^']*?)'";
System.out.println(constructorPattern);
System.out.println(dataStoreConstructor);
Pattern pattern = Pattern.compile(constructorPattern);
Matcher matcher = pattern.matcher(dataStoreConstructor);
SalesforceDataStore sfDataStore = new SalesforceDataStore.Builder(this, matcher.group(1), matcher.group(0)).build();
};
这是我看到的输出 -
url='([^']*?)',corpnet_prodnet='([^']*?)'Exception in thread "main"
url='https://www.salesforce.com/services/Soap/u/26.0',corpnet_prodnet='Corpnet'
java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:485)
at com.dragon.dictionary.salesforce.SalesforcePlatform.registerDataStoreInRepository(SalesforcePlatform.java:63)
答案 0 :(得分:3)
正则表达式很好。请致电:
matcher.find()
在致电matcher.group()
之前。问题将会解决。
答案 1 :(得分:2)
使用此:
if (matcher.find()) {
SalesforceDataStore sfDataStore = new SalesforceDataStore.Builder(this, matcher.group(1), matcher.group(0)).build();
}
你忘了告诉匹配者去寻找一些东西: - )