[英]Is there any efficient Java solution/Algorithm to find values in a text field based on key string with delimiter?
[英]Is there any Java based open source framework to find values from a text field based on key string with delimiter?
是否有任何基于Java的开放源代码框架,用于基于带有定界符的键字符串在文本字段中查找值?
例:
密钥:用户名Start-Delimiter :; 结束定界符:;
关键字:在开始分隔符上: 结束定界符:;
输入示例:具有用户名; surenraju;的用户。 于2013年5月2日星期四下午2点30分登录系统。
结果:用户名-surenraju
上-2013年5月2日星期四2:30 pm
提前致谢。
我们已经使用Regex解决了这个问题。
样例代码:
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));
}
}
测验
一,密钥:用户名Start-Delimiter: 结束定界符:;
需要找到一个值,如果该值后跟键(在本例中为username),并且该值在开始和结束定界符(在本例中为;)之间。
二。 关键字:在开始分隔符上: 结束定界符:;
输入样例:
具有用户名; suren;的用户 于2013年5月2日星期四下午2点30分登录系统。
结果:I.用户名-确保II。 上-2013年5月2日星期四2:30 pm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.