我在代码中发现了一个错误。在开始一个switch语句的新案例之前,我只是忘了break;
。所以,代码看起来像
switch (nCounter)
{
case 1:
*dReturnValue = 1.;
// here should have been a break;
case 2:
*dReturnValue = 2.;
break;
default:
*dReturnValue = 3.;
break;
}
如何使用正则表达式查找两个案例(或case
... default:
),而中间没有break;
?
由于
菲利普
答案 0 :(得分:0)
对您的问题,最向后兼容的答案是这样的:
case(\n|[^bc]|c[^a]|ca[^s]|cas[^e]|b[^r]|br[^e]|bre[^a]|brea[^k])*case
link:)
case
。b
以外的任何字母。b
。r
br
后面没有e
,依此类推break
没有k
。brea
的任何子字符串。这可以扩展到包括break以及除了空格和分号之外的任何内容,但我只想给你一般的想法(意味着这将在case breakthrough case
上失败)。此外,单词case应该后面跟冒号。
答案 1 :(得分:0)
这是一种方式。有可能与开关/案例建立相同的逻辑,但有一点点诅咒。
注意在每种情况下使用lambdas来执行代码。这可确保只采用一个代码路径。
这是一个最小的例子。请注意,在优化版本中,这可能不比开关/案例效率低。
d occurs 1 times in the entered string.
e occurs 1 times in the entered string.
h occurs 1 times in the entered string.
i occurs 1 times in the entered string.
r occurs 1 times in the entered string.
s occurs 1 times in the entered string.
F occurs 2 times in the entered string.
1 occurs 1 times in the entered string.
2 occurs 1 times in the entered string.
3 occurs 1 times in the entered string.
4 occurs 1 times in the entered string.
5 occurs 1 times in the entered string.
6 occurs 1 times in the entered string.
7 occurs 1 times in the entered string.
8 occurs 1 times in the entered string.