首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件运算符的C#正则表达式--例如eq:2,ne:3

条件运算符的C#正则表达式--例如eq:2,ne:3
EN

Stack Overflow用户
提问于 2021-10-21 15:41:43
回答 2查看 123关注 0票数 1

我想用C#为字符串编写一个正则表达式,它可以包含任何运算符和操作数值。这些运算符是字符串字符,如eq表示等于,ct = between & bt表示中间,eq表示等于。

在测试过程中,有人用eq:**+4的垃圾值测试了我的代码,并且字符串是eq:**+4。

现在,我希望构建一个regex,这样它将根据regex值(如eq:5或bt:8-9 )验证字符串。

注意:操作符之间的exlcuding没有其他操作符应该有像eq:4-6这样的值。

我做了这个@"^\b(eq,ne,gt,lt,ge,ge,le,ct,bt)\w\b:?(\d -)?\d“

我看起来很亲密,但需要一些指导才能让这件事正常运作。

欢迎任何帮助或建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-21 16:11:20

您可以使用

代码语言:javascript
复制
@"^(eq|[gln]e|[bclg]t)\s*:\s*\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?\z"

regex演示。详细信息

  • ^ -字符串的开始
  • (eq|[gln]e|[bclg]t)
  • \s*:\s* -一个用零或多个空格括起来的冒号
  • \d+(?:\.\d+)? -整数/浮点数(一个或多个数字,然后是一个可选的点序列和一个或多个数字)
  • (?:-\d+(?:\.\d+)?)? -一个可选的-序列,一个或多个数字,然后是一个可选的点序列和一个或多个数字。
  • \z -字符串的末尾。

请参阅中的.NET正则表达式。

编辑:

似乎只有bt范围被接受,所以您需要

代码语言:javascript
复制
@"^(?:eq|[gln]e|[clg]t|(bt))\s*:\s*\d+(?:\.\d+)?(?(1)(?:-\d+(?:\.\d+)?)?)\z"
票数 1
EN

Stack Overflow用户

发布于 2021-10-21 16:02:34

(eq|ne|gt|lt|ge|le|ct|bt):-?[0-9]+(--?[0-9]+)?

或与命名组:@"(?<operator>eq|ne|gt|lt|ge|le|ct|bt):(?<firstValue>-?[0-9]+)(-(?<secondValue>-?[0-9]+))?$"

无负值:@"(?<operator>eq|ne|gt|lt|ge|le|ct|bt):(?<firstValue>[0-9]+)(-(?<secondValue>[0-9]+))?$"

演示:https://regex101.com/r/HWnIq9/1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69664934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档