最多匹配 2 个星号且最少 2 个星号以外的字符的正则表达式

问题描述 投票:0回答:1

我正在尝试找到匹配这两个条件的正确正则表达式:

  1. 必须包含 1 或 2 个
    *
    (最多 2 个,但不一定是连续的)
  2. 必须包含至少两个数字字符且
    .

例如,以下字符串必须匹配:

1*2
1**2
*2.*
。 以下字符串不得匹配:
ab*
1*
1*2*.*

到目前为止,我已经为这两个“部分”尝试了以下正则表达式,但没有成功:

  1. 1 或 2
    *
    \*(?![\d.]*\*[\d.]*\*[\d.]*)
  2. 至少两位数或
    .
    [\d.](?=[\*\d.]{2,})

我正在努力寻找正确的正则表达式。

regex regex-lookarounds
1个回答
0
投票

您可以断言 2 次点或数字,然后匹配 1 或 2 次星号:

^(?=(?:[^\d.\n]*[\d.]){2})(?:[^\n*]*\*){1,2}[^\n*]*$

查看 正则表达式演示

© www.soinside.com 2019 - 2024. All rights reserved.