两个正则表达式匹配匹配之间的空格

时间:2016-09-28 15:39:20

标签: c# regex

我试图将字符串与此正则表达式匹配:

正则表达式:

[ ](\d{4}|\d{4}[A-Za-z]{3})[ ]

注意:数字后面可能有3个字符,这就是[A-Za-z] {3}所在的原因。

这是我不想匹配的字符串:

281320Z 26015KT 9999 3333 FEW028 SCT033 BKN053 16/10 Q1007=

所以在这种情况下它只会选择9999 因为匹配1将保留一个空格。 在这种情况下:

281320Z 26015KT 9999 3333 4444 FEW028 SCT033 BKN053 16/10 Q1007=

将选择9999和4444。

我怎么能这样做9999,3333,4444被选中?

2 个答案:

答案 0 :(得分:3)

您可以使用这样的正则表达式:

\b(\d{4})(?:\b|[A-Z]{3})

<强> Working demo

答案 1 :(得分:1)

\b(\d{4})(?:[A-Za-z]{3})?\b应该可以解决问题。

(?:)是一个非捕获组,我们将其与?一起使用,以表明其内容可能显示为零或一次。

使用$1

检索四位数字