REGEX输入验证

时间:2019-06-06 15:55:55

标签: regex

我正在尝试将REGEX表达式放在一起以验证以下格式:

"XXX/XXX","XXX/XXX","XXX/XXX"

其中X可以是字母,数字,破折号或下划线。我到目前为止所得到的是

"(.*?)(\/)(.*?)"(?:,|$)/g

但它似乎不起作用

更新:可以有任意数量的以逗号分隔的“ XXX / XXX”字符串,而不仅仅是3

3 个答案:

答案 0 :(得分:0)

这将完成工作:

"[-\w]+/[-\w]+"(?:,"[-\w]+/[-\w]+")*

说明:

"           # quote
[-\w]+      # 1 or more hyphen or word character [a-zA-0-9_]
/           # a slash
[-\w]+      # 1 or more hyphen or word character [a-zA-0-9_]
"           # quote
(?:         # non capture group
  ,         # a comma
  "         # quote
  [-\w]+    # 1 or more hyphen or word character [a-zA-0-9_]
  /         # a slash
  [-\w]+    # 1 or more hyphen or word character [a-zA-0-9_]
  "         # quote
)*          # end group, may appear 0 or more times

Demo

答案 1 :(得分:0)

您可以尝试以下正则表达式:

"([\w-]+)\/([\w-]+)"

编辑:正则表达式说明:

  • ([\w-]+)在方括号中,我们说我们要匹配\w:匹配任何单词字符(等于[a-zA-Z0-9_])。此后,我们有了“ -”,它只是将符号“ -”添加到匹配的符号中。
  • +”表示我们想要上一个块中的一个或多个符号:[\w-]
  • \/直接与符号“ /”匹配。应该在正则表达式中将其转义,这就是为什么它前面带有“ \”的原因
  • ([\w-]+)与第1点完全一样,因为两部分相同,所以它们匹配相同的事物。
  • ()-这些括号标记捕获组,您以后可以在代码中使用它们来获取包围和匹配的值。 示例:

完全匹配:1X-/-XX

第1组:1X-

第2组:-XX

这是一个具有匹配案例的演示-click。如果这样做不能解决问题,请在评论中告诉我。

答案 2 :(得分:0)

在这里,我们将从带有量词的简单表达式开始:

("[A-Za-z0-9_-]+\/[A-Za-z0-9_-]+")(,|$)

在一个char类中收集所需的三个字符,后跟斜杠,最后添加一个可选的,

Demo

RegEx电路

jex.im可视化正则表达式:

enter image description here