java中的正则表达式(匹配字符串一部分的模式)

mzsu5hc0  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(223)

请任何人帮我写一个正则表达式来匹配下面给出的字符串的一部分。
“CECSEC\n:90a:/5645644343\n值1\n值2\n值3\n:80f:/245343\nfglfejfj\n”
我只想从上面的字符串中提取值1和值2,该字符串出现在:90a:/中,可以考虑用于后面查看。
输出:
价值2
价值3
图案:((?<=(:90a:/).{0,40}[\n].{0,40}[\n]).asterisk)[^:]asterisk
我已经挣扎了很多天了。如果有人能在这方面帮助我,我将非常感激。
谢谢

dzjeubhm

dzjeubhm1#

替代正则表达式:

":90A:/(?:[^\n]{0,40}\n){2}([^\n]+)\n([^\n]+)"

上下文中的正则表达式:

public static void main(String[] args) {
    String input = "Cecscec\n:90A:/5645644343\nvalue1\nvalue2\nvalue3\n:80F:/245343\nfglfejfj\n";

    Matcher matcher = Pattern.compile(":90A:/(?:[^\n]{0,40}\n){2}([^\n]+)\n([^\n]+)").matcher(input);
    if(matcher.find()) {
        System.out.println("Group1: '" + matcher.group(1) + "'");
        System.out.println("Group2: '" + matcher.group(2) + "'");
    }
}

输出:

Group1: 'value2'
Group2: 'value3'

相关问题