我在想什么?java正则表达式提取不起作用?
这是 '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)
它在此正常工作http://regex101.com/r/lS5tT3/39 – vks 2014-09-26 05:41:58
对输出中的错字感到抱歉 - 为什么会造成'找不到匹配'异常呢? – 2014-09-26 05:45:08
该模式看起来不错,但是由于您使用否定字符类,所以懒惰量词无用:''([^'] *)' – 2014-09-26 05:52:17