使用/或-的字母正则表达式

时间:2018-08-09 09:00:50

标签: regex

正则表达式应将字母或数字与它们之间的data.Values.Volumes.map/匹配,但不应以-/开头或结尾

我使用RegExr尝试了此操作,但不起作用

-

1 个答案:

答案 0 :(得分:0)

您当前的正则表达式存在以下问题:

  • 它与多个/-匹配,但仅在一个位置匹配(例如,将匹配0123/-/-456但不匹配0123/456/789
  • 它也与|匹配,您不需要在[character class]中使用
  • 它匹配到end of the string$,但从^the start of the string开始不匹配(例如,它将匹配foo0123/456,尽管它不匹配0123/456foo li>

您可以使用Avinash Raj提出的以下正则表达式:

^[a-zA-Z0-9]+(?:[/-][a-zA-Z0-9]+)*$

通过将字符类匹配的斜杠和破折号以及一个匹配的字母字符放在(?:non-capturing group)中来固定的第一点,我们可以用*进行量化以指定它可以出现任意次数。该组将匹配任意数量的斜杠或破折号,后跟数字字符。

另外两点很简单,我们删除无用的|并在正则表达式的开头添加一个^