我的文字内容格式如下:
Hello world []
Hello another world
Hello Mars
[img width="300" height="200"]
This is a good day
[video url="http://example.com/"]
[xxx key="value"]
是自定义标记。
我希望有一个正则表达式来分割或匹配纯文本,包括新行和标记元素,并得到如下结果:
[
[0] => Hello world []\n
Hello another world\n
Hello Mars,
[1] => [img width="300" height="200"],
[2] => This is a good day,
[3] => [video url="http://example.com/"]
]
欢迎使用任何编程语言。希望知道正确的正则表达式。
答案 0 :(得分:0)
在javascript中,可以这样做。
> var s = 'Hello world\nHello another world\nHello Mars\n[img width="300" height="200"]\nThis is a good day\n[video url="http://example.com/"]'
undefined
> s.match(/(?!\n)[^\[\]]*?(?=\n\[)|\[[^\]]*\]/gm)
[ 'Hello world\nHello another world\nHello Mars',
'[img width="300" height="200"]',
'This is a good day',
'[video url="http://example.com/"]' ]