我尝试在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?/
...但这也在一条线的中心匹配。
匹配-
或*
前缀字符串或数字前缀字符串但必须具有句点的正则表达式是什么?
答案 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>');