我想与此相符:
*this string*
但不是以下内容:
* *
我试过这个:
(?<!\*\*)(?<=\*)[^\*]+(?=\*)(?!\*\*)
但它将匹配第二个用例。为了解决这个问题,我尝试将[^\*]+
更改为[^\*\s]+
,但之后它与第一个不匹配。
提前致谢。
答案 0 :(得分:1)
如果您想避免在两个*
之间仅匹配空白,您可以添加另一个前瞻,(?!\s+\*)
:
(?<!\*\*)(?<=\*)(?!\s+\*)[^*]+(?=\*)(?!\*\*)
^^^^^^^^^
确保当前位置之前没有**
((?<!\*\*)
并且前面有一个*
((?<=\*)
),{{1如果在当前位置之后有1个空格后面跟(?!\s+\*)
,则否定前瞻会使匹配失败。