php
  • regex
  • preg-replace
  • preg-match
  • pcre
  • 2013-02-23 40 views 0 likes 
    0

    我正在使用正則表達式來匹配我的模板文件中的鏈接對象。基本上,鏈接被識別,並且根據用戶是否啓用了JS,它被轉換爲javascript或HTML。無法獲得PHP正則表達式匹配/和 - 文字

    下面是一個簡單的鏈接是什麼樣子:

    <div id="someDiv">{_LINK_9_link text here_noclass_noid_}</div> 
    

    這裏是我用來發現代碼中的這些對象的正則表達式:

    $linkExp = '/\{_LINK_([0-9]+)_([a-z0-9 ]+)_([a-z0-9]+)_([a-z0-9]+)_\}/i'; 
    

    因爲它位於,此代碼工作可以做一個像上面這樣的例子,鏈接文本可以包含字母,數字或空格。但是,當我嘗試將/-添加到鏈接文本時,我無法再使用正則表達式。

    這裏是我的嘗試:

    <!-- html link code --> 
    <div id="someDiv">{_LINK_9_tips/suggestions_noclass_noid_}</div> 
    // php link expression 
    $linkExp = '/\{_LINK_([0-9]+)_([a-z0-9 \/\-]+)_([a-z0-9]+)_([a-z0-9]+)_\}/i'; 
    

    但還是沒找到,因爲/的比賽。如果我把斜槓拿出來,它可以正常工作。任何想法如何在正則表達式中匹配字面/-?允許比字母,數字,空格,連字符或斜線更多的字符是很好的,但我是一個正則表達式的新手,所以我不知道自己在做什麼。如果有人能幫我修復它,以便它能匹配任何鏈接文本(甚至符號,例如&,%,$等),那麼也會非常感激。

    在此先感謝。

    +0

    1.'[0-9] = [\ d]'2. [a-Z0-9] = [\ w ]' – hjpotter92 2013-02-23 17:03:19

    +1

    你的第二個正則表達式匹配html對我來說很好。你如何使用它? – 2013-02-23 17:03:34

    +0

    回聲@ExplosionPills,[它適用於我](http://so.viper-7.com/XwUmmP) – salathe 2013-02-23 17:04:32

    回答

    1

    你幾乎是正確的,使用

    $linkExp = '/\{_LINK_([0-9]+)_([a-z0-9 \/-]+)_([a-z0-9]+)_([a-z0-9]+)_\}/i'; 
    
    1. 的「 - 」用於[]內,以範圍,例如[AZ],但如果是放在最後,它被視爲一個字符,例如[az-]將匹配字母+''''
    相關問題