我正在尝试这种常规表达方式,但我无法正确验证结束空格和字母:
/^\d{0,2}(\-\d{0,2})?(\-\d{0,2})?(\ ?\d[W,E]?)?$/
正确值的示例:
怎么了?
答案 0 :(得分:1)
-
此quantifier也匹配数字零次,以便与第3个示例中的前导[W,E]
匹配。
在character class [ENW]
中,您可以省略逗号并列出您允许匹配的字符$
如果只有第三组是可选的,您可以尝试在行=SUMPRODUCT(COUNTIFS(A:A,E2,B:B,$B$2:INDEX(B:B,MATCH(1E+99,B:B)))*($A$2:INDEX(A:A,MATCH(1E+99,B:B))=D2))/COUNTIF(A:A,D2)
之前包含空格
答案 1 :(得分:0)
我使用过这个正则表达式:^(?!\-)\d{0,2}?(\-\d{0,2}).+\s(N|E|W|S)$
使用negative lookahead
,我们排除了任何以破折号(-
)开头的内容。
(?!\-)
= Starting at the current position in the expression,
ensures that the given pattern will not match
\s(N|E|W|S)
使用空格(\s
)匹配任何内容,使用OR运算符|
匹配其中一个字母。\s+(N|E|W|S)
。+
= Matches between one and unlimited times, as many times as
possible, giving back as needed