如何在Node js中创建正则表达式?



样本数据如下

@ID_111_I1_0.000_I2_0.00_I3_-0.999*
@ID_232_TS_09.0*

我创建了一个正则表达式:

const reg = new RegExp(/^@ID_[A-Z0-9._-]**/i);

但是对于@ID_111_I1_0.000_I2*

这样的字符串,它会显示为true这里I2键在那里,但它的值没有显示字符串从这个@ID开始。然后用_键值对分割,字符串以*结束请帮助我解决!!!!

检查以下操作是否适用:

^@ID_d+(?:_[A-Zd]+_-?d+(?:.d+)?)+*$

查看在线演示

  • ^-Start string anchor.
  • @ID_-逐字匹配。
  • d+- 1+数字0-9得到ID#。
  • (?:-打开第一个非捕获组:
    • _[A-Zd]+-下划线后跟1+字母数字字符。
    • _-?d+-下划线、可选连字符和1+数字。
    • (?:-打开第二个非捕获组:
      • .d+-文字点和1+数字。
      • )?-关闭第二个非捕获组并使其成为可选的。
    • )+-关闭第一个非捕获组并匹配1+次。
  • *-文字星号。
  • $-结束字符串锚。

注意,我将键值对中的小数设置为可选的。如果需要,您可以将其设置为强制性的:

^@ID_d+(?:_[A-Zd]+_-?d+.d+)+*$

最新更新