正则表达式匹配字符串,如果不是JUST空格(但如果存在其他字符,则允许空格)

时间:2017-01-25 11:11:55

标签: regex match

我想与此相符:

*this string*

但不是以下内容:

* *

我试过这个:

(?<!\*\*)(?<=\*)[^\*]+(?=\*)(?!\*\*)

但它将匹配第二个用例。为了解决这个问题,我尝试将[^\*]+更改为[^\*\s]+,但之后它与第一个不匹配。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您想避免在两个*之间仅匹配空白,您可以添加另一个前瞻,(?!\s+\*)

(?<!\*\*)(?<=\*)(?!\s+\*)[^*]+(?=\*)(?!\*\*)
                ^^^^^^^^^

请参阅maven-indexer

确保当前位置之前没有**(?<!\*\*)并且前面有一个*(?<=\*)),{{1如果在当前位置之后有1个空格后面跟(?!\s+\*),则否定前瞻会使匹配失败。