Products
GG网络技术分享 2025-03-18 16:14 0
^([0-9]{11})([0-9]{11})\\n
如上这个正则表达式,他是匹配以数字开头,22位的数字然后回车
这里我想在22位的数字中间加符号或者别的东西,所以都是匹配到11位就截止,那么正则表达式中,如何调用前十一位匹配的内容和后十一位匹配的内容呢?请知道的告诉下谢谢
就是([0-9]{11})和([0-9]{11})
我记得以前是S1和S2可以,但是现在忘记了,请告诉下
伪代码:(\\d{11})(\\d{11})
取:$1--------前11位
$2----------后11位
你加上括号
用 group(1) group(2) 就可以得到
1.可以分组部分保留NFA的结构,分组内部调用DFA,也就是分组部分缩成一个功能节点/边,然后到了这点/边就去调用内部的DFA
2.就像vczh说的一样,用一个capture边指向分组,转换NFA到DFA的时候把功能边保留下来,这样CaptureBegin到CaptureEnd之间的有向图就是分组捕获用的正则,NFA到DFA的转换不要跨功能边的边界.
3.使用Re2作者blog提到的基于虚拟机方法的正则引擎的设计.设计Caputre指令,在Capture开始和结束的指令之间的指令吃下的字符就是分组结果.
=================================================================
非常感谢vczh聚聚当初的文章和教程的指点.^_^
Demand feedback