正则表达式用于输入验证

时间:2012-03-09 21:02:30

标签: regex

我正在尝试学习正则表达式,并希望有人可以帮助我。如果有人可以帮我提出一个正则表达式来验证输入必须是

形式,那么感谢WOULD
Graph: XY5, YZ4, ST7

XY5等每个部分代表图中的边,数字代表边权重。可以有任何数量的这种边缘。

这就是我现在所拥有的。这可能不正确

"^Graph:\\s{1}[A-ZA-Z\\d,\\s]+"

3 个答案:

答案 0 :(得分:1)

这可能就是你要找的东西:

/^Graph: (?:[A-Z]{2}\d(?:$|, ?))+/

在此处查看:[{3}}


以下是正则表达式的解释(来自http://regexr.com?309av的截图,如果您正在尝试学习正则表达式,这可能是最适合您的工具):

enter image description here

答案 1 :(得分:0)

您应该更好地解释您的输入格式。从我所拥有的一个例子和你说的话,这可能会这样做。它不允许图表为空,这可能是也可能不是您的要求的一部分。

"^Graph:(\s\w{2}\d+,?)+"

解释:

^Graph:将涵盖行的开头

(\s\w{2}\d+,?)+

\s是一个空格

\w{2}正好匹配2个字母数字字符(提示:你可以做得更好!)

\d+匹配1位或更多位数,因为我假设边长度可以是两位数(例如10)

,?可选地匹配逗号。 (提示:你也可以做得更好,因为它不需要在每个条目之间使用逗号!,也许通过使用或者字符串分隔符的结尾!)

我故意留下一些改进的空间,因为如果你自己想到一些,你将实现你用正则表达式变得更好的目标。

答案 2 :(得分:0)

试试这个

/^Graph:(\s+[A-Z][A-Z]\d+)+$/