是否有基于Java的开源框架可以根据带分隔符的关键字符串在文本字段中查找值?
示例:
关键字:username 起始分隔符:; 结束分隔符:;
关键字:on 起始分隔符:; 结束分隔符:;
样本输入:A user with username ;surenraju; logged into the system on ;Thu May 2, 2013 2:30pm;
结果:username – surenraju
on – Thu May 2, 2013 2:30pm
提前感谢。
回答:
我们已经使用正则表达式解决了这个问题。
样本代码:
ArrayList<String> keys = new ArrayList<String>(); keys.add("username"); keys.add("on"); String startDelimiter = ":"; String endDelimiter = ":"; String searchStr = "A user with username :suren: logged into the system on :22 May 2013 2:30 PM:"; for (String key : keys) { String pattern = "("+key+")[ ]*?"+startDelimiter+"([^" +endDelimiter+ "]+)"+endDelimiter; Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(searchStr); while (m.find()) { System.out.println("Key: " + m.group(1) + " Value: " + m.group(2)); } }
测试
I. 关键字:username 起始分隔符:; 结束分隔符:;
需要查找的值应紧跟在关键字(在本例中为username)之后,且值位于起始和结束分隔符之间(在本例中为;)。
II. 关键字:on 起始分隔符:; 结束分隔符:;
样本输入:
A user with username ;suren; logged into the system on ;Thu May 2, 2013 2:30pm;
结果:I. username – suren II. on – Thu May 2, 2013 2:30pm