[問題] 字串匹配問題

作者: 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