我在想什麼?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