java正则表达式根据分隔组的分隔符的数量获取n个组
我有两个像这样的linux命令
ntpq -pn | sed -n '1,2!p' echo "%%%" chage -l root
%%%是我正在使用的分隔符,用于解析输出
上面的命令返回:
remote refid st t when poll reach delay offset jitter
============================================================================
*NTP_SERVER SOME_IP_HERE 4 u 36 1024 77 0.511 -4.415 197.945
%%%
Password inactive : never
Password expire : never\
当我只想获取第二个命令的输出时,我拥有的%%%((?:.*))
正则表达式可以很好地工作,但是如果我在这个命令后面有更多的输出,并用%%分隔会怎么样。我也想把他们分成不同的小组
如何转换我的正则表达式模式,以便它捕获由分隔符分隔的单独组中的所有输出
# 1 楼答案
假设您有一个多行字符串,在第一个
%%%
分隔符之前有一些不重要的文本,您可以先删除这个不重要的文本,然后用%%%
拆分:见first regex demo和second regex demo
详细信息:
(?s)
-.
现在匹配任何字符(与^{^
-字符串的开头.*?
-任何零个或多个字符,尽可能少%%%
-一个%%%
字符串[\r\n]*
-零个或多个CR或LF字符李>