是否有任何基于Java的开源框架可以根据带分隔符的键字符串从文本字段中查找值?

是否有任何基于Java的开源框架可以根据带分隔符的键字符串从文本字段中查找值?,java,jakarta-ee,machine-learning,text-mining,Java,Jakarta Ee,Machine Learning,Text Mining,是否有任何基于Java的开源框架可以基于带分隔符的键字符串在文本字段中查找值 例如: 关键字:用户名 开始分隔符:; 结束分隔符: 钥匙:开 开始分隔符:; 结束分隔符: 示例输入:用户名为的用户;苏伦拉朱;在上登录系统;2013年5月2日星期四下午2:30 结果: 用户名-surenraju 2013年5月2日星期四下午2:30 提前感谢。我们已经用Regex解决了这个问题 示例代码: ArrayList<String> keys = new ArrayList<St

是否有任何基于Java的开源框架可以基于带分隔符的键字符串在文本字段中查找值

例如:

关键字:用户名 开始分隔符:; 结束分隔符:

钥匙:开 开始分隔符:; 结束分隔符:

示例输入:用户名为的用户;苏伦拉朱;在上登录系统;2013年5月2日星期四下午2:30

结果: 用户名-surenraju
2013年5月2日星期四下午2:30


提前感谢。

我们已经用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));
        }
    }
ArrayList keys=new ArrayList();
添加(“用户名”);
密钥。添加(“on”);
字符串startDelimiter=“:”;
字符串endDelimiter=“:”;
String searchStr=“用户名为:suren:的用户于2013年5月22日下午2:30登录系统:”;
用于(字符串键:键){
字符串模式=“(“+key+”[]*?“+startDelimiter+”([^“+endDelimiter+”]+)“+endDelimiter;
Pattern p=Pattern.compile(Pattern);
Matcher m=p.Matcher(searchStr);
while(m.find()){
System.out.println(“键:+m.group(1)+”值:
+m组(2);
}
}
测验

I.键:用户名开始分隔符:;结束分隔符:

需要找到一个值,如果后跟key(在本例中为username),则该值介于开始和结束分隔符(在本例中为;)之间

二,。键:开始时分隔符:;结束分隔符:

样本输入:

具有用户名的用户;苏伦;在上登录系统;2013年5月2日星期四下午2:30


结果:I.用户名-suren II。2013年5月2日星期四下午2:30

您的示例输入似乎与“关键”示例相矛盾。嗨,史蒂夫,谢谢您的回复。我已经编辑了这个问题。现在问题清楚了吗?提前谢谢。是的,现在更清楚了。你的问题和例子不匹配。输入:
用户名为的用户;苏伦拉朱;在上登录系统;2013年5月2日星期四下午2:30
表示输出:
用户名为->surenraju的用户在->2013年5月2日星期四下午2:30登录系统