我想提取英国邮政编码的输出代码。所有背景都在这里:UK Postcode Regex (Comprehensive)
但它不是验证,所以这应该做:
所有邮政编码都转换为大写,没有空格。
我无法弄清楚如何指定动态范围。或者无论如何。
伪代码^[A-Z0-9]{length(postcode) - 3}
补充:我正在使用R。
答案 0 :(得分:2)
您正在使用的语言或环境(或者更确切地说是正则表达式)会有所帮助(总是在任何正则表达式问题中),但在大多数情况下应该这样做:
^([A-Z0-9]{2,})[A-Z0-9]{3}$
因此我们在1
组中匹配并capture 2个或更多字符,然后再需要3个字符,直到字符串结束。如何访问捕获取决于您的环境。
如果你的正则表达式支持lookaheads,你就可以在不使用捕获的情况下逃脱:
^[A-Z0-9]{2,}(?=[A-Z0-9]{3}$)
这可确保匹配的结尾后跟三个字符和字符串的结尾,但不会在匹配中包含此部分。