作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在 ruby 中有这样的正则表达式
%r{
(ST)
([A-Z]) ?
(#{A_VAL})
-?
(T)?
}x
现在,我不希望我的正则表达式接受任何以“-”结尾的字符串。因此,例如它应该接受
1)“STCA1-T”
2)“STCA1T”
但它不应该接受“STCA1-”
最佳答案
你可以使用
/\AST[A-Z]?(#{A_VAL})(?:-?T)?\z/
详情
\A
- 字符串的开始ST
- ST
子串 [A-Z]?
- 一个可选的 ASCII 字母(#{A_VAL})
- 第 1 组(如果只有一个替代项,只有一个字符串,并且以后不需要此值,则可以省略捕获括号):一个模式在 A_VAL
变量中(?:-?T)?
- 可选的非捕获组,匹配可选的 -
和强制性的 T
(即它匹配 -T
或 T
1 次或 0 次)\z
- 字符串结尾。关于regex - 如何在 ruby 中对正则表达式中的特殊字符和字母进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57850854/
我是一名优秀的程序员,十分优秀!