Javascript 带有星号*和下划线的减价强调正则表达式_

Javascript 带有星号*和下划线的减价强调正则表达式_,javascript,regex,Javascript,Regex,不是复制品 但是升级。 答案中完美的正则表达式只包含带下划线的情况,但也支持星号降价 TLTR:我需要一个正则表达式来匹配降价强调与\u em和*em* 不在匹配开始和结束时的前后(|*)空格 在开始和结束时不重复(|*) 没有像*foo\uu 我试图解决这个问题的方法是 \b[_\*](?![_\*\s])(.*?[^_\*\s])[_\*]\b 但是没有用* 这是一个带有一些测试的示例。应仅匹配\u em和*em*案例。您可以使用 /([*])(? 详情如下: ([*])-第1组:或

不是复制品

但是升级。 答案中完美的正则表达式只包含带下划线的情况,但也支持星号降价

TLTR:我需要一个正则表达式来匹配降价强调与
\u em
*em*

  • 不在匹配开始和结束时的前后(
    |
    *
    )空格
  • 在开始和结束时不重复(
    |
    *
  • 没有像
    *foo\uu
我试图解决这个问题的方法是

\b[_\*](?![_\*\s])(.*?[^_\*\s])[_\*]\b
但是没有用
*

这是一个带有一些测试的示例。应仅匹配
\u em
*em*
案例。

您可以使用

/([*])(?
详情如下:

  • ([*])
    -第1组:
    *
  • (?-反向查找:没有与组1中相同的字符或任何单词字符,然后是当前位置左侧的任何字符
  • (?![\u*\ s])
    -如果当前位置右侧立即有
    \u
    *
    或空白,则会导致匹配失败的负前瞻
  • (.*.[^.*\s])
    -第2组:除换行符以外的任何零个或多个字符,尽可能少,然后是除
    .
    *
    或空格以外的字符
  • (?=\1)
    -正向前瞻,要求与组1中相同的值立即出现在当前位置的右侧
  • ([*])
    -第3组:a
    *
  • (?!\w |\3)
    -后面不紧跟单词char或与第3组中相同的值