Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于验证wind格式的正则表达式_Regex_Swift2 - Fatal编程技术网

Regex 用于验证wind格式的正则表达式

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]|

我正在尝试验证空中交通管制的风向和风速格式,例如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]|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)$