匹配来自* ABC *的“ABC”,但不是来自** ABC **

时间:2011-10-29 14:09:18

标签: regex

我正在尝试匹配来自ABC的{​​{1}},而不是来自*ABC*

到目前为止我已经这样了;

**ABC**

要匹配的字符串可以是以下任何一种。

/[^\*]{1}\*([^\*]+)\*[^\*]+/
ABC **Don't match this** DEF
ABC *Match this* DEF
*Match this*

3 个答案:

答案 0 :(得分:5)

您可以使用negative look-behindnegative look-ahead。那是

(?<!\*)\*ABC\*(?!\*)

其中的内容为

  

*ABC*不在*之前,而在*之后没有成功。

答案 1 :(得分:1)

你走在正确的轨道上 没有断言:/(?:^|[^*])\*[^*]+*(?:[^*]|$)/
(使用带有断言的aioobe正则表达式,或使用/不带任何组合)。

答案 2 :(得分:0)

如果字符串以“*”开头和结尾,您可以使用:

  

/ ^ *([^ *] +)* $ /