如何使用Regex MultiVariables

时间:2016-09-16 16:38:14

标签: javascript regex

我试图正则表达这一点,但它不起作用:

这是我的字符串:

asdasd2-bgbegebr23-yiyity23-iopip123

所以我试图获得:' - '之间的所有值,但它不起作用:我实际使用这个:

/(-)(.*)(-)/gi

作为正则表达式,但不起作用,谢谢大家:S

2 个答案:

答案 0 :(得分:3)

那是因为点包括de dash。你应该删除破折号。试试这个:

/([^ - ] +)/ GI

答案 1 :(得分:1)

我不太了解你的正则表达式的目的。假设您想要设计一个迭代的正则​​表达式,示例字符串成功地获取asdasd2,bgbegebr23等,正则表达式将是这样的:

\-?([^\-]*)\-?

<强>为什么?

  1. - :你必须用“ - ”而不是“ - ”,因为连字符是正则表达式的特殊字符,所以你必须逃避它
  2. ? :连字符是可选的:在第一种情况下(asdasd2),它不存在。因此,执行它将省略第一种情况。
  3. ():分组以捕获所有asdsas2和那些字母数字的东西..
  4. [^ - ]:除连字符外的所有内容。 @vks(。*?)的近似值我认为也适用
  5. - :再次,连字符,但逃脱了。我们不能忘记“?”最后是因为示例字符串的最后一个例子,它不以连字符结尾。
  6. 不要忘记,如果你在javascript中工作,你可能需要scape反斜杠(),导致这样的表达式:

    \\-?[^\\-]*)\\-?