我有以下正则表达式:
string patternSign = "([-]+)|([*]+)|([+]+)|([/]+)";
它适用于所有符号,但不适用于" +"符号。我读了另外一个问题,我必须逃避它,但是当我尝试时,我得到了一个sintax错误。
输入字符串为:Al == At + An
当我在下面的代码中进行拆分时:
string[] substrings = Regex.Split(input, patternSinais);
结果是:
应该是:
它不仅仅与加号一起使用,它适用于该字符串中的所有其他符号。
有什么不对?
提前谢谢。答案 0 :(得分:1)
您错过了=
作为模式的一部分,您可以将模式缩小为
"([-*+/=]+)"
代码示例:
string[] pieces = Regex.Split("Al==At+An", "([-*+/=]+)");
foreach (string piece in pieces)
{
Console.WriteLine(piece);
}
结果:
Al
==
At
+
An
答案 1 :(得分:1)
我在代码中发现了错误。 我正在使用代码从表达式中删除空格,但它正在删除加号。
代码是:
String input = Regex.Replace(formula, "[( )+]", "");
我刚删除它,现在它工作正常。
感谢您的回答。
答案 2 :(得分:1)
集合符号[ ]
中的所有内容都被视为文字,包括+
和*
以及.
等所有特殊模式字符。
撰写[x+]
表示匹配以下文字字符x
或+
的一个。
如果在该集合之外添加了+
[x+]+
,则x
现在意味着匹配以下文字的一个或多个 字符+
或select leaguename, player_count from League l,(
select leagueid, count(leagueid) as player_count from Player
group by leagueid having count(leagueid) >= All (select count(leagueid) from Player group by leagueid) ) t
where l.leagueid = t.leagueid
order by leaguename
任意组合。