如何解析I. {text} II。 {text} III。 {text} IV。 {文本}

时间:2013-07-05 14:40:07

标签: javascript regex

如何使用pattern:

将(使用正则表达式的JavaScript)解析为数组字符串
  

予。 {text1} II。 {text2} III。 {text} IV。 {text2} ...

(众所周知,来自I-VII的罗马订单编号)

3 个答案:

答案 0 :(得分:3)

可能这个:

var result_set = your_string.match(/[IVXLDMC]+\. {.*?}/g)

示例:

your_string = "I. {text1} II. {text2} III. {text} IV. {text2}";
your_string.match(/[IVXLDMC]+\. {.*?}/g)
["I. {text1}", "II. {text2}", "III. {text}", "IV. {text2}"]

答案 1 :(得分:2)

var text = "I. {text1} II. {text2} III. {text} IV. {text2} ...";
text.split(/ ?[IV]+\. /)

输出:

["", "{text1}", "{text2}", "{text}", "{text2} ..."]

它快速而且肮脏,你可以shift关闭第一个空元素。

答案 2 :(得分:1)

来自that site

M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})

应该检测到你的任何罗马数字

使用它来获取带有罗马数字的索引,然后使用substr或substring方法来获取文本。或者使用拆分:

text.split(/ M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\./) // split with  <space>RomanNumber<point> separator