所以我正在读一个文件,我需要计算该文件中逻辑运算符的数量,从这里的建议我尝试使用正则表达式,但我正在使用的那个:
Regex reg = new Regex(@"/and|x?or|&&|[<>!=]=|[<>&!]|\|{1,2}/gi");
返回匹配的所有内容,例如,它返回任何带有 "or" 的变量,或者如果我有 "<=" 运算符,则将其计为两个单独的运算符(分别为"<"和 "=" ) .
"or"
"<="
"="
我是否应该在此时使用正则表达式,因为它似乎不会对我的情况有所帮助 .
为了匹配 <= 而不是 < 是使用条件表达式:
<=
<
(<=|<|>=|>)
首先会尝试匹配 <= ,如果成功,它将不会检查 < . 同样适用于 >= 和 = .
>=
=
要匹配 or ,而不是单词,您可以使用lookarounds来确保它是独立的(将此模式添加到上面):
or
(<=|<|>=|>|(?<=[^a-zA-Z])or(?=[^a-zA-Z]))
试试demo .
1 回答
为了匹配
<=
而不是<
是使用条件表达式:首先会尝试匹配
<=
,如果成功,它将不会检查<
. 同样适用于>=
和=
.要匹配
or
,而不是单词,您可以使用lookarounds来确保它是独立的(将此模式添加到上面):试试demo .