正则表达式,用于分割和匹配纯文本和标记元素

时间:2014-11-15 05:32:52

标签: regex split pattern-matching

我的文字内容格式如下:

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/"]
]

欢迎使用任何编程语言。希望知道正确的正则表达式。

1 个答案:

答案 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/"]' ]