我有一个多行文字,我只想提取以给定模式开头的整行。例如,我有这个文本集
v=0
o=Z 0 0 IN IP4 127.0.0.1
s=Z
c=IN IP4 127.0.0.1
t=0 0
m=audio 8000 RTP/AVP 3 110 8 0 98 101
a=rtpmap:110 speex/8000
a=rtpmap:98 iLBC/8000
a=fmtp:98 mode=20
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
我想通过使用模式前缀c = IN
来提取行:c = IN IP4 127.0.0.1有可能吗?
答案 0 :(得分:0)
是的,您可以使用模式c=IN.*
执行此操作,其中.*
是直到行尾的所有字符,Matcher
就像:
String ttt = "v=0\n" +
"o=Z 0 0 IN IP4 127.0.0.1\n" +
"s=Z\n" +
"c=IN IP4 127.0.0.1\n" +
"t=0 0\n" +
"m=audio 8000 RTP/AVP 3 110 8 0 98 101\n" +
"a=rtpmap:110 speex/8000\n" +
"a=rtpmap:98 iLBC/8000\n" +
"a=fmtp:98 mode=20\n" +
"a=rtpmap:101 telephone-event/8000\n" +
"a=fmtp:101 0-15\n" +
"a=sendrecv";
Pattern pattern = Pattern.compile("c=IN.*");
Matcher matcher = pattern.matcher(ttt);
if (matcher.find())
System.out.println(matcher.group());
或者你可以将它\n
拆分成一行数组并迭代这个数组,直到得到一个以c=IN
开头的那个。