NGR正则表达式匹配

Fre*_*red 2 c# regex

我正在尝试验证NGR(国家网格参考).这必须是2个字母的格式,后跟4,6,8或10位数字.前两个字母必须是SS,ST,SW,SX或SY.到目前为止我所拥有的是:

^[S][STWXY]\d{4}$|\d{6}$|\d{8}$|\d{10}$
Run Code Online (Sandbox Code Playgroud)

问题是,这似乎是基于两个字母后跟4位数字或6位数字或8位数字或10位数字来验证

我想要两个字母和4个数字或2个字母和6个数字或2个字母和8个数字或2个字母和10个数字.

我没有太多与正则表达式有关,所以我一直在尝试各种组合,但我显然缺少一些东西.

ssh*_*124 6

只需修改你的正则表达式如下:

^[S][STWXY](\d{4}|\d{6}|\d{8}|\d{10})$
Run Code Online (Sandbox Code Playgroud)

这将使OR(|)运算符仅在数字之间进行比较