我昨天一直在摆弄,但找不到合适的解决方案。我正在尝试获取一个正则表达式,该正则表达式与所有大写字母的楼层输入(对于建筑物)进行匹配。
我想仅匹配 E
、仅 D
、仅 1、2、3 等
或仅 U1, U2、U3 等。
,最后一个也必须按字母在数字之前的正确顺序排列,而不是相反。
到目前为止,我在这里想出了这个正则表达式:/[UED]|[1-9]/g
但这匹配的东西太多了,例如 2U
也会匹配 ED22
或 UD1
等等。我正在使用 regexr.com
进行尝试,但到目前为止还没有成功解决这个问题。
有谁知道如何专门处理上述四个输入之一?
Valid Inputs:
E
U8
D
32
etc..
Invalid Inputs:
2U
ED
EEE
D1
etc.
最佳答案
您可以使用
^(?:[ED]|U?[1-9]\d*)$
详细信息
^
- 字符串开头(?:
- 匹配以下任意一个的非捕获组的开头[ED]
-E
或D
|
- 或U?[1-9]\d*
- 可选的U
、非零数字和任何 0+ 数字
)
- 组结束$
- 字符串结尾。
关于用于加工楼层输入的正则表达式,例如 E、D、U1、U2 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775822/