我试图让正确的数字范围与三个字母中的每一个相关联!
这是我到目前为止:\w*[EWO]-\d{1,2}
问题如下:
美国政府雇用的人员被分配一个确定其年薪的薪资等级。薪资等级是以字母E,W或O(每个都是大写字母)开头的代码。第一个字母后跟一个破折号,然后恰好是一个或两个数字。有效的E工资等级从1上升到9.有效W工资等级从1上升到5.有效O工资等级从1上升到10.有效的工资等级分类包括E-1,W-5,O-1和O-10。无效薪资等级分类的示例是E-10,W-6和O-20。
答案 0 :(得分:0)
如果该字母为O,则O-10有效。正则表达式:O-10
如果字母是O,则O-1到O-9有效。正则表达式:O-[1-9]
如果字母是E,则E-1到E-9有效。正则表达式:E-[1-9]
如果字母是W,则W-1到W-5有效。正则表达式:W-[1-5]
使用替换方式将它们放在一起:O-10|O-[1-9]|E-[1-9]|W-[1-5]
唯一的技巧是确保最长的匹配是第一次。您必须首先放置O-10
,否则O-10将与O-[1-9]
匹配,并且它不会与零匹配。
最后,由于O-[1-9]
和E-[1-9]
都有效,我们可以合并它们,提供:O-10|[EO]-[1-9]|W-[1-5]