[问题] 字串匹配问题

楼主: mardin (mardin)   2017-10-06 15:16:40
/* 听说注明使用的语言、环境
* 问题有可能较容易被解决...
*/
各位先进好,
想请教一个RE的写法, 一直想不出来
假设原始资料是
..abc..ab..xys...xyz..ss..abc..ab..xys...xyz..sk..abc..ab..xys.sk..xyz..
我想写一个语法 是要从第一个 ss 到 第一个sk 之间的字串
我写法如下
/ss([\S]*sk)/
但取出的字串都是
..abc..ab..xys...xyz..ss..abc..ab..xys...xyz..sk..abc..ab..xys.sk..xyz..
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
但不是我要的结果
..abc..ab..xys...xyz..ss..abc..ab..xys...xyz..sk..abc..ab..xys.sk..xyz..
^^^^^^^^^^^^^^^^^^^^^^^^^^
请高手帮忙指点, 谢谢!!
>>>>>> 感谢rjjq解惑
那想再问 若有 N个sk 字串, 想比匹配第N个, 语法如何写?!
原字串
..abc...ss..abc..ab..xys...xyz..sk..abc.sk.ab.sk.xys.sk..xyz..
..abc...ss..abc..ab..xys...xyz..sk..abc.sk.ab.sk.xys.sk..xyz..
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
上面有 4个 sk 字串, 想匹配ss到第2个sk , 如何写才可以, 谢谢!
作者: rjjq ( )   2017-10-06 15:21:00
(ss.*?sk)(ss(?:.*?sk){n}) , n = 0,1,2....
作者: cutekid (可爱小孩子)   2017-10-06 16:23:00
ss(.*?sk){2}
楼主: mardin (mardin)   2017-10-06 16:44:00
感谢2位大大解惑

Links booklink

Contact Us: admin [ a t ] ucptt.com