×

cron表达式 c

判断cron表达式输入是否有效的正则表达式?C#中Rectangle的坐标怎么算

admin admin 发表于2022-06-03 11:18:46 浏览117 评论0

抢沙发发表评论

判断cron表达式输入是否有效的正则表达式


^
(?!.*[^\d+\-*/\(\)]) #规则0,字符串必须由数字,符号和括号组成
(?!.*\)\d) #规则A,不允许右括号后接数字
(?!.*[+\-*/]([+\-*/]|\))) #规则B,不允许符号后面接符号或右括号
(?!.*\([+*/]) #规则C,不允许左括号后接运算符(- 可以表示负号)
(?!.*(\d|\))\() #规则D,不允许左括号前有数字或右括号
(?=\d|\-|\() #规则E,字符串开头必须是,数字,负号,左括号中的一个
(?=.*(\d|\))$) #规则F:结尾必须是数字或者右括号
[^\(\)]*
#开始匹配,捕获括号,使用平衡组来判断括号数量是否相等,需要.NET的支持
(
(
(?’open’\()
[^\(\)]*
)+
(
(?’-open’\))
[^\(\)]*
)+
)*
(?(open)(?!)) #规则G:左右括号数量必须相等
$

最终的正则表达式为:
^(?!.*[^\d+\-*/\(\)])(?!.*\)\d)(?!.*[+\-*/]([+\-*/]|\)))(?!.*\([+*/])(?!.*(\d|\))\()(?=\d|\-|\()(?=.*(\d|\))$)[^\(\)]*(((?’open’\()[^\(\)]*)+((?’-open’\))[^\(\)]*)+)*(?(open)(?!))$

没考虑空格的情况,因为考虑空格需要加很多很多个\s*,大大降低可读性
由于使用了平衡组,此正则表达式需要在.NET环境下运行

C#中Rectangle的坐标怎么算


Rectangle的构造函数为:Rectangle(int x,int y,int width,int height);
x:矩形左上角的 x 坐标。x的值为矩形左上角到窗体左上角的水平距离;
y:矩形左上角的 y 坐标。y的值为矩形左上角到窗体左上角的垂直距离;
width:矩形的宽度。
height:矩形的高度。
这些参数都是以像素为单位,且以窗体左上角为原点

java定时器怎么停止


1、scheduleUpdate
加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule)
看例子,走起。
首先在HelloWord类的头文件中声明Update函数:
[cpp] view plain copy print?
void update(float dt); //注意参数类型
然后在HelloWorld类源文件中实现函数Update:

[cpp] view plain copy print?
void HelloWorld::update(float dt)
{
CCLOG(“baibai“);
}
现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:

[cpp] view plain copy print?
this-》scheduleUpdate(); //this是当前节点,如layer,所以可以省略啦。

运行之后你将会看到不断有baibai被打印出来
2、scheduleUpdate
可以没隔几秒执行某个自定义的函数,来看代码:
首先还是在HelloWorld中声明所要执行的函数:
-cron表达式