关于字符串切割和正则表达式的问题

本文介绍了一种使用PHP解析复杂嵌套字符串的方法,通过三种不同的技术实现:遍历字符、正则表达式匹配及最大嵌套深度查找。这些技术有助于开发者更好地理解和处理复杂的字符串结构。

在坛子里看到一篇比较经典的帖子,是关于字符串切割和正则表达式应用的,觉得很不错,特意拿来为以后做东西做个参考。。。

内容如下:

/*
*jia1(jia2(jia3(1+2)+3)+4)+jia4(5+6)/jia5(7+8)
*有这样的字符串
*我怎么才能将其分割为
*jia3(1+2)
*jia2(jia3(1+2)+3)
*jia1(jia2(jia3(1+2)+3)+4)
*jia4(5+6)
*jia5(7+8)
*/
$str="jia1(jia2(jia3(1+2)+3)+4)+jia4(5+6)/jia5(7+8)";
//方法1
$stack=array();
for($i=0;$i<strlen($str);$i++)
{
if($str[$i]=='(')
{
$stack[$i]='(';
}
elseif($str[$i]==')')
{
if(empty($stack))
{
returnfalse;
}
else
{
//将数组内部指针,指向最后一个单元
//$fruits=array('apple','banana','cranberry');
//printend($fruits);//cranberry

end($stack);
//返回数组中当前单元的键名
$last=key($stack);
//echo"last=".$last."---------"."i=".$i."--------".($last-4)."------".($i-$last+5)."<br>";
echosubstr($str,$last-4,$i-$last+5)."<br>";
array_pop($stack);
}
}
}
//方法2
echo"<br>";
functionfindStr($str,$patternStart,$patternEnd)
{
$l=strlen($str);
$s='';
$p=array();
while($i<$l)
{
$s.=$str[$i];
if(preg_match($patternStart,$s,$m,PREG_OFFSET_CAPTURE))
{
$a[]=$m[0][1];
}
if($str[$i]==$patternEnd)
{
$k=max($a);
$p[]=substr($str,$k,$i-$k+1);
array_pop($a);
}
$i++;
}
return$p;
}
print_r(findStr($str,'/jiad($/i',')'));
//方法3
echo"<br>";
functionget_max_depth($str){
$max_depth=0;$depth_counter=0;
for($i=0;$i<strlen($str);$i++){
if($str[$i]==='('){
$depth_counter++;
}
if($str[$i]===')'){
$depth_counter--;
}
if($depth_counter>$max_depth)
$max_depth=$depth_counter;
}
return$max_depth;
}



for($i=1;$i<=get_max_depth($str);$i++){
$partten="/(jiad(){".$i."}d(+d)){".$i."}/";
if(preg_match_all("$partten",$str,$matches)){
foreach($matches[0]as$match_str)
echo"$match_str------------$i<br>";
}
}
内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值