列分隔值的正则表达式(PHP)
我有以下数据集,按列组织:列分隔值的正则表达式(PHP),php,regex,Php,Regex,我有以下数据集,按列组织: startword: blablabla: blablabla: 123456 123456 123456 important phrase 1 important phrase 2 important phrase 3 我想把重要短语放在不同的匹配中。目前,我有以下正则表达式(工作正常,请参阅): 目前,我在PHP(使用两个空格作为分隔符)中以编程方
startword: blablabla: blablabla:
123456 123456 123456
important phrase 1 important phrase 2 important phrase 3
我想把重要短语
放在不同的匹配中。目前,我有以下正则表达式(工作正常,请参阅):
目前,我在
PHP
(使用两个空格作为分隔符)中以编程方式拆分行,但我想知道是否有更好的方法将匹配项直接分组(一些\G
magic?) 您可以使用这个正则表达式捕获所有匹配项:
(?:^startword:(?:.*\R){2}\K|(?!^)\G\h{2,})(.+?(?=\h{2}|$))
在上一个匹配的末尾或第一个匹配的字符串的开头断言位置\G
- Lookahead
确保前面有两个或多个水平空格,或者在捕获的文本之后到达行尾(?=\h{2}|$)
match1 => important phrase 1
match2 => important phrase 2
match3 => important phrase 3
(?:^startword:(?:.*\R){2}\K|(?!^)\G\h{2,})(.+?(?=\h{2}|$))