-1

如何将(在 JavaScript 中使用正则表达式)解析为带有模式的数组字符串:

一、{text1} 二。{text2} 三。{文本} 四。{文本2} ...

(已知罗马序号从 I-VII)

4

3 回答 3

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}"]
于 2013-07-05T14:43:30.733 回答
2
var text = "I. {text1} II. {text2} III. {text} IV. {text2} ...";
text.split(/ ?[IV]+\. /)

这输出:

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

它又快又脏,您可以关闭第一个空元素。

于 2013-07-05T14:44:11.280 回答
1

那个网站

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
于 2013-07-05T14:57:22.447 回答