Regex 用于验证wind格式的正则表达式
我正在尝试验证空中交通管制的风向和风速格式,例如190/10。风向必须在001到360之间,风速必须在00到30之间 我试过了Regex 用于验证wind格式的正则表达式,regex,swift2,Regex,Swift2,我正在尝试验证空中交通管制的风向和风速格式,例如190/10。风向必须在001到360之间,风速必须在00到30之间 我试过了 ^(0[0-9][1-9]|1[0-9][0-9]|2[0-9][0-9]|30[0-9]|31[0-9]|32[0-9]|33[0-9]|34[0-9]|35[0-9]|36[0])[\/](0[0-9]|[12][0-9]|3[0])$ 但它不起作用。然而,这一个部分工作 ^(0[0-9][1-9]|1[0-9][0-9]|2[0-9][0-9]|30[0-9]|
^(0[0-9][1-9]|1[0-9][0-9]|2[0-9][0-9]|30[0-9]|31[0-9]|32[0-9]|33[0-9]|34[0-9]|35[0-9]|36[0])[\/](0[0-9]|[12][0-9]|3[0])$
但它不起作用。然而,这一个部分工作
^(0[0-9][1-9]|1[0-9][0-9]|2[0-9][0-9]|30[0-9]|31[0-9]|32[0-9]|33[0-9]|34[0-9]|35[0-9]|36[0])|/|(0[0-9]|[12][0-9]|3[0])$
如果您有任何帮助,我们将不胜感激。您可以试试
^(?:[0-2]\d\d|3[0-5]\d|360)\/(?:[0-2]\d|30)$
在哪里,
(?:…)
- 第一个备选方案:[0-2][0-9][0-9]
- 第二备选方案:3[0-5][0-9]
- 第三种选择:360
\/
逐字匹配字符/
(?:…)
- 第一个备选方案:[0-2][0-9]
- 第二备选方案:30
注意:
\d
匹配数字[0-9]对于0-360
零件,您可以使用:
'^((?:\d)|(?:\d\d)|(?:[0-3][0-5]\d)|(?:00\d)|(?:360))' # correctly anchored at the end
因此,值得一试:
^((?:(?:\d)|(?:\d\d)|(?:[0-2]\d\d)|(?:3[0-5]\d)|(?:00\d)|(?:360))\/(?:(?:30)|(?:[0-2]\d)))$
对于swift 2,需要进行以下更改:
^(?:|[0-2]\\d\\d|3[0-5]\\d|360)\\/(?:|[0-2]\\d|30)$
请花点时间阅读并回答。我认为您的问题是关于在未标记的编程语言中使用“\”;)。我希望这对@JoseRicardoBustosM有帮助。太好了,我无法想象。(我会将regex
(\d{3})\/(\d{2})
和价值评估(对于$1和$2)结合使用。)如果您在Swift中这样做,为什么要在regex中验证0-360?在Swift中就可以这样做。这就像我在演示中希望的那样,但在Swift 2中给出了“文本中无效的转义序列”。有什么想法吗?我不知道,编辑你的问题,添加标签“swift”,或者你可以用swift做新的问题,没有乐趣(|[0-2]\\d\\d\124; 3[0-5]\\d\124; 360)\\/(?|[0-2]\\d\124; 30)$你可以使用[0-9]
而不是\\d
。。。。和/
而不是\\/
。。。。我不知道swift2:(Swift不支持分支重置组(这里确实不需要它们)。请使用非捕获组。此外,您需要两次避开反斜杠:^(?[0-2]\\d\\d|3[0-5]\\d|360)/(?:[0-2]\\d|30)$