是否有任何基于 Java 的开源框架可以根据带有分隔符的键字符串在文本字段中查找值?
例子:
键:用户名开始分隔符:; 结束分隔符:;
键:on 开始分隔符:; 结束分隔符:;
示例输入:用户名为 ;surenraju; 的用户 于 2013 年 5 月 2 日星期四下午 2:30 登录系统;
结果:用户名 -surenraju
于 - 2013 年 5 月 2 日星期四下午 2:30
提前致谢。
是否有任何基于 Java 的开源框架可以根据带有分隔符的键字符串在文本字段中查找值?
例子:
键:用户名开始分隔符:; 结束分隔符:;
键:on 开始分隔符:; 结束分隔符:;
示例输入:用户名为 ;surenraju; 的用户 于 2013 年 5 月 2 日星期四下午 2:30 登录系统;
结果:用户名 -surenraju
于 - 2013 年 5 月 2 日星期四下午 2:30
提前致谢。
我们已经用正则表达式解决了这个问题。
示例代码:
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. Key: 用户名 Start-Delimiter: ; 结束分隔符:;
需要找到一个值,如果其后跟键(在本例中为用户名)并且值在开始和结束分隔符之间(在本例中为 ;)。
二、键:on 开始分隔符:; 结束分隔符:;
样本输入:
用户名为 ;suren; 的用户 于 2013 年 5 月 2 日星期四下午 2:30 登录系统;
结果: I. 用户名 - Suren II。2013 年 5 月 2 日星期四下午 2:30