我有以下字符串,
9.2 20268 pat 6.0 24977 pat 4.0 21222 pat 3.9 20854 pat
我需要拆分此字符串并将结果字符串保存在数组中。
结果字符串如下所示:
9.2 20268 pat
6.0 24977 pat
4.0 21222 pat
3.9 20854 pat
请有人帮我这个吗?
答案 0 :(得分:6)
您可以将此正则表达式用于拆分:
(?<=pat)\s+
(?<=pat)
是lookbehind正则表达式,可确保一个或多个空格前面有文字字符串pat
示例:强>
perl -wpe 's/(?<=pat)\s+/\n/g' <<< "9.2 20268 pat 6.0 24977 pat 4.0 21222 pat 3.9 20854 pat"
9.2 20268 pat
6.0 24977 pat
4.0 21222 pat
3.9 20854 pat
答案 1 :(得分:3)
您可以将此固定的“pat”用作拆分分隔符。
perl -wpe 's/pat\s/pat\n/g' <<< "9.2 20268 pat 6.0 24977 pat 4.0 21222 pat 3.9 20854 pat"
9.2 20268 pat
6.0 24977 pat
4.0 21222 pat
3.9 20854 pat
或
perl -wpe 's|pat\K\s|\n|g' <<< "9.2 20268 pat 6.0 24977 pat 4.0 21222 pat 3.9 20854 pat"
perldoc perlre用于\K
外观断言。