c# - 正则表达式 c# 不应匹配 boolean 运算符

标签 c# regex if-statement boolean

我正在尝试编写一个应该能够识别 boolean 表达式的正则表达式。

我需要避免像 IF(AND AND AND) 这样的情况。也就是说,变量的名称不应是以下运算符之一 (OR;AND;XOR)

我也尝试过使用 [^(OR)] 但这没有帮助。我的正则表达式如下所示:

(?:<Name> [A-Za-z0-9])

有没有机会写一个 Regex 来找到像 OR 这样的字符串然后不匹配它?

更新:

@Kobi - 我试过你的解决方案,效果很好。有没有其他方法可以做这样的事情可能是傻瓜。我想编写可读的代码

最佳答案

尝试否定前瞻:

(?<Name>\b(?!(?:and|x?or)\b)[A-Za-z0-9]+)

假设您正在尝试匹配单个文字,例如“IF(this AND this)”。正则表达式在获取字母之前进行检查,如果它看到的只是“and”、“or”或“xor”,则失败。

此外,请确保您设置了正确的 RegexOptions - 您可能需要打开 IgnoreCase,除非您有 IgnorePatternWhitespace原始模式可能无法匹配,例如 if(var1 中没有空格。

关于c# - 正则表达式 c# 不应匹配 boolean 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3853595/

相关文章:

JAVA:创建 boolean 变量或在 If 语句中放置参数?

c# - 允许用户在 Windows 控制台中键入任意数量的字符串,然后显示有关已键入的字符串中的字母数和行号的信息

java - Java 中使用 contains 不匹配字符串

javascript - 将字符串限制为逗号后 2 个数字且仅限 1 个逗号

regex - 匹配一个数字最多次数

c# - 来自基类的用户定义转换运算符

c - if 语句中的赋值语句如何充当条件?

c# - 从 REST Web API 应用程序创建 nuget 包

c# - 我应该从 SQL CLR 函数中使用 EF6

c# - 使用 Pdftron 在 C# 中将 Excel 转为 Pdf