我试图将字符串与此正则表达式匹配:
正则表达式:
[ ](\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被选中?
答案 0 :(得分:3)
答案 1 :(得分:1)
\b(\d{4})(?:[A-Za-z]{3})?\b
应该可以解决问题。
(?:)
是一个非捕获组,我们将其与?
一起使用,以表明其内容可能显示为零或一次。
使用$1