精華區beta RegExp 關於我們 聯絡資訊
我想要用正規表達式抓出第一個 開頭是XOX 結尾是KOK 的字串 例如 asxzxaXOXsooxazKOKasoooxXOXasaszKOKxzassxXOXoasKOKaaszoass ~~~~~~~~~~~~ 請問要怎麼寫 我原本是這樣寫的 /XOX[^XOX]*KOK/ 但是這樣會錯... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.131
salagadoola:我在perl裡用$str=~/(XOX[^XOX]*KOK)/拿到的$1是對的 02/21 11:01
giacch:[]裡面的是算字元的... = = 02/21 15:47
giacch:/XOX([^K]*|[^K]*K[^O]*|[^K]*K[^O]*KO[^K]*)KOK/ 02/21 18:12
giacch:sorry... 上面有誤... 02/21 18:19
giacch:/XOX([^K]|K[^O]|KO[^K])*KOK/ 想很久, 不知道對不對... 02/21 18:31
> -------------------------------------------------------------------------- < 作者: franklai (半分の月) 看板: RegExp 標題: Re: [問題]新手發問 時間: Thu Feb 21 14:29:15 2008 ※ 引述《xxxx9659 (嘎嘎嘎嘎嘎)》之銘言: : 我想要用正規表達式抓出第一個 開頭是XOX 結尾是KOK 的字串 : 例如 : asxzxaXOXsooxazKOKasoooxXOXasaszKOKxzassxXOXoasKOKaaszoass : ~~~~~~~~~~~~ : 請問要怎麼寫 : 我原本是這樣寫的 : /XOX[^XOX]*KOK/ : 但是這樣會錯... 當字串是 XOXXKOK 的時候就會抓不到了 因為 [^XOX] 的意思是「除了O與X之外的字元」 目前想到的寫法是用non-greedy XOX.*?KOK 不知道有沒有其他方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.122.6.166 > -------------------------------------------------------------------------- < 作者: DarkKiller (System hacked) 看板: RegExp 標題: Re: [問題]新手發問 時間: Thu Feb 21 16:15:09 2008 ※ 引述《xxxx9659 (嘎嘎嘎嘎嘎)》之銘言: : 我想要用正規表達式抓出第一個 開頭是XOX 結尾是KOK 的字串 : 例如 : asxzxaXOXsooxazKOKasoooxXOXasaszKOKxzassxXOXoasKOKaaszoass : ~~~~~~~~~~~~ : 請問要怎麼寫 : 我原本是這樣寫的 : /XOX[^XOX]*KOK/ : 但是這樣會錯... PHP: if (preg_match('/XOX(.*?)KOK/', $str, $m)) print $m[1]; Perl: if ($str =~ /XOX(.*?)KOK/) { print $1; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.54.119
xxxx9659:喔!原來如此!!感謝感謝 02/23 01:48