規範編輯指引修改程序和多次投票的提案正在討論中,歡迎參與討論!
關於活動收錄範圍的修正案投票已結束,點擊查看結果!
- 你好~!歡迎來到萌娘百科!如果您是第一次來到這裡,點這裡加入萌娘百科!
- 歡迎具有翻譯能力的同學~有意者請點→Category:需要翻譯的條目←
- 如果您在萌娘百科上發現某些內容錯誤/空缺,請勇於修正/添加!編輯萌娘百科其實很容易!
- 歡迎關注 萌娘百科各大平台官方帳號 ~
- 覺得萌娘百科有趣的話,請推薦給朋友哦~
- 萌娘百科新人/遊客群119170500歡迎加入,加入時請寫明【萌百用戶名或擬反饋內容】~
模板:Regex
簡介
該模板為RegexParserFunctions模塊的封裝模板,使用基於PCRE庫的正則表達式對字符串的處理,包含下列功能:
- test:判斷字符串是否匹配正則
- match:返回與正則匹配的子串
- replace:根據正則替換字符串
若要將該模板置於其他字符串處理或邏輯判斷的模板中,建議先單獨拿出來測試,確保正則以及修飾符的正確。因為該模板已經屏蔽了原模塊拋出的系統級錯誤(系統級錯誤有可能導致在頁面後退時發生編輯丟失)。
用法與示例
關於修飾符的使用,請參考:PHP官方文檔:模式修飾符
該模板所有方法的ptn
參數均支持以<nowiki>
標籤包裹的格式傳入。
test
判斷字符串是否匹配正則,匹配則返回1,否則返回空。
{{regex|test|str=字符串 |ptn=正則 |mdf=修飾符 |then= 如果匹配則輸出,默認為1 |else= 否則輸出,默認為空}}
其中,str、ptn、then、else也分別對應匿名參數2、3、4、5。
- 示例:
{{regex|test|123,456|\d+,\d+|true|false}}
結果:true
match
返回與正則匹配的子串,若未匹配到,則返回空。
{{regex|match|str=字符串 |ptn=正則 |mdf=修飾符}}
其中,str和ptn也分別對應匿名參數2和3。
- 示例:
{{regex|match|123,456|,\d+}}
結果:,456
replace
根據正則替換字符串,若未匹配到,則原樣返回。
{{regex|replace|str=字符串 |ptn=正則 |mdf=修飾符 |rep=替換內容,默認為空字符串}}
其中,str、ptn、rep也分別對應匿名參數2、3、4。
- 示例1:
{{regex|replace|abc,dEf|mdf=i|,[a-z]+|000}} <!-- 使用修飾符“i”,設置大小寫不敏感 -->
結果:abc000
- 示例2:
{{regex|replace|abc,def|(\w+),(\w+)|$1&$2}} <!-- 使用“$n”,引用捕獲的子串 -->
結果:abc&def
|