centOS stream 9 升级cURL到8.17版本
2026/9/30 2:01:09
state1--->state2 `------>state3// 初始状态 -----}}-----> 插值 ---> end ↓// `-----< a-z-----> parseElement ----> parseTag 开始 ---> parseChildren(循环) ---> parseTag 结束 ↓// `-----非以上是text-----> parseText ↓// 结束状态机经常被用在词法语法解析的场景
使用有限状态机实现正则表达式功能
functiontest(string){functionwaitForA(char){if(char==='a'){returnwaitForB}returnwaitForA}functionwaitForB(char){if(char==='b'){returnwaitForC}returnwaitForA}functionwaitForC(char){if(char==='c'){returnend}returnwaitForA}functionend(){returnend}letcurrentState=waitForAfor(leti=0;i<string.length;i++){letnextState=currentState(string[i])currentState=nextStateif(currentState===end){returntrue}}returnfalse}console.log(test('abc'));// trueconsole.log(test('acc'));// falseconsole.log(test('labcfdds'));// truefunctiontest(string){letstartIndex// ✅letendIndex// ✅leti// ✅letresult=[]functionwaitForA(char){if(char==='a'){startIndex=i// ✅returnwaitForB}returnwaitForA}functionwaitForB(char){if(char==='b'){returnwaitForC}returnwaitForA}functionwaitForC(char){if(char==='c'||char==='d'){endIndex=i// ✅returnend}returnwaitForA}functionend(){returnend}letcurrentState=waitForAfor(i=0;i<string.length;i++){letnextState=currentState(string[i])currentState=nextStateif(currentState===end){// ✅console.log(startIndex,'startIndex');// ✅console.log(endIndex,'endIndex');// ✅currentState=waitForA// return true // ✅}}// return false}// console.log(test('abc')); // true// console.log(test('acc')); // falseconsole.log(test('labcfabcdds'));// truefunctionwaitForC(char){if(char==='c'||char==='d'){endIndex=ireturnend}returnwaitForA}