java中的regex智能字符串解析

yr9zkbsy  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(317)

我有一个电子邮件主题行,我需要分析。我需要找出单词列表中任何单词的第一个出现,然后得到下一个可以用

('=' or ',' or ';' or 'blank' or '.').

例如
客户词列表[“客户”,“客户”,“昆登”,“kd.编号”]
顺序词列表[“order”,“auftrag”,“auftragsnmer”,“auftragnr.”]
分隔符:[=,;.]

subjectline:  Customer 2013ABC has send an Aufrag 2056899A for Motif=A

我需要像这样分析信息

customer=2013ABC 
order=2056899A 
Motif=A

我使用的是Java7,所以也可以使用scanner类。
谢谢你提前给我小费

snvhrwxg

snvhrwxg1#

您可以通过使用正则表达式来实现这一点,下面是一个示例代码:

Pattern p = Pattern.compile(".*(customer|client|kunden|kd\\.nr\\.)[=,;\\. ]*(\\w*).*(order|auftrag|auftragsnummer|auftragnr\\.)[=,;\\. ]*(\\w*).*[ ](.*)$", Pattern.CASE_INSENSITIVE);
    String subject = "subjectline: kd.nr. 2013ABC has send an Auftrag 2056899A for Motif=A";

    Matcher m = p.matcher(subject);
    if(m.matches()) {
        System.out.println(m.group(1) + " : " + m.group(2) );
        System.out.println(m.group(3) + " : " + m.group(4));
        System.out.println(m.group(5));
    }

希望这有帮助。

相关问题