用于加工楼层输入的正则表达式,例如 E、D、U1、U2 等

标签 regex typescript

我昨天一直在摆弄,但找不到合适的解决方案。我正在尝试获取一个正则表达式,该正则表达式与所有大写字母的楼层输入(对于建筑物)进行匹配。

我想仅匹配 E、仅 D、仅 1、2、3 等 或仅 U1, U2、U3 等。,最后一个也必须按字母在数字之前的正确顺序排列,而不是相反。

到目前为止,我在这里想出了这个正则表达式:/[UED]|[1-9]/g

但这匹配的东西太多了,例如 2U 也会匹配 ED22UD1 等等。我正在使用 regexr.com 进行尝试,但到目前为止还没有成功解决这个问题。

有谁知道如何专门处理上述四个输入之一?

Valid Inputs:
E
U8
D
32
etc..

Invalid Inputs:
2U
ED
EEE
D1
etc.

最佳答案

您可以使用

^(?:[ED]|U?[1-9]\d*)$

参见another regex demo

详细信息

  • ^ - 字符串开头
  • (?: - 匹配以下任意一个的非捕获组的开头
    • [ED] - ED
    • | - 或
    • U?[1-9]\d* - 可选的 U、非零数字和任何 0+ 数字
  • ) - 组结束
  • $ - 字符串结尾。

关于用于加工楼层输入的正则表达式,例如 E、D、U1、U2 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775822/

相关文章:

python - 如何精确查找和替换

javascript - 如何从对象数组中删除属性?

regex - Bash 正则表达式捕获

php - 字符串匹配

python 正则表达式不检测方括号

javascript - 如何在 React with Typescript 中使用 Material UI 自定义变体

javascript - 错误 : Cannot find module 'src/entities/Post'

typescript - 如何在 typescript 中输入生成器函数

typescript - 非 SPA 站点的 Angular 2 缓慢初始化

Javascript Hashmap key 编译成正则表达式