匹配角色出现一次或三次时

时间:2014-01-18 07:56:38

标签: javascript regex

我正在处理与markdown相关的一些匹配(JavaScript的正则表达式)。如果_*出现一次(在开头,结尾或后面并且前面有其他字符或空格),我需要匹配,如果发生3 _或{{1 (*___)。但不是两个。

所以匹配为***,但*但不是*****a匹配**_

所以我基本上想要匹配,如果一个元素在markdown(_)或粗体和斜体(*italic*)中是斜体。它也可以是***bold italic***

我现在在这里,但它确实不起作用。另外,如果无论如何可能,我希望它只与2匹配,甚至更好只匹配一个正则表达式。

_** italic bold **_

//编辑

匹配(^|[^_])_([^_]|$) (^|[^_])_([^_]|$) (^|[^\*])\*([^\*]|$) (^|[^\*])\*\*\*([^\*]|$)

的输入
*****

不匹配*em* ***em*** __*em* __*em*__ word*em*word

*****

1 个答案:

答案 0 :(得分:0)

基于我的理解,我相信这个正则表达式应该有效:

(?:^|[^*])_*([*](?:[*]{2})*)?[^*_]+\1_*(?:[^*]|$)

在线演示:http://regex101.com/r/qX5gR5