正则表达式匹配这个或正是这个

时间:2015-06-30 19:37:38

标签: javascript regex parsing

我尝试在LDT JavaScript插件的顶部编写Markdown Parser,它允许进行实时解析。它具有基本功能,其中之一是使用Regex的自定义解析器。

在尝试实施Markdown"解析器"时,我被困在列表上。我想匹配

- This string
* and that string

或者完全

1. A string that starts with a number whic must be followed by a period.

因此,在创建解析器时,所有条目都会被分段并用管道(|)分隔。模板为:new Regexp("^("+s+")$")

我当前的正则表达式匹配无序列表:

 /[-\*]\s[^\n\r]*\n?/

...但这也在一条线的中心匹配。

匹配-*前缀字符串或数字前缀字符串但必须具有句点的正则表达式是什么?

1 个答案:

答案 0 :(得分:2)

如果这是接近您所需任务的正确/错误方式,请避免讨论,您可以使用两个group captures and beginning/end line boundaries。第一组捕获将允许您测试匹配时的列表类型。

var strings = [
  '- This string',
  '* and that string',
  '1. A string that starts with a number which must be followed by a period.',
  'Bad string',
  '-Bad string', 
  '*Bad string',
  '2 Bad string.'
];

var matchRegExp = /^(\d\.|\*|\-)\s(.+)$/;

var res = strings.map(function (str) {
  return { str: str, match: str.match(matchRegExp) };
});

document.write('<pre>' + JSON.stringify(res, null, 4) + '</pre>');