[英]Preg_match for alternative values in regex php
我想匹配正則表達式中的兩種可能性之一。
$regex = "/^(& (sot-(<pagination>[0-9]+)) | (dorer-(<pagination>[0-9]+)) )? &?$/";
preg_match($regex, "&sot-6", $matches);
此正則表達式應與以下值匹配:
&sot-4
&dorer-56&
&sot-281&
&dorer-0
這意味着“&”(“sot-”或“dorer-”)(數字)(可選的“&”)
但是 (text)-(number) 不是單一格式。 這就是為什么我需要一個擴展的正則表達式格式。
但它根本不匹配。 我該怎么辦?
您可以使用這個適用於所有測試用例的較短正則表達式:
^&[^-]+-(?<pagination>\d+)&?$
如果這不符合您的要求,您可能需要添加更多相關細節。
正則表達式詳情:
^&
: 在行首匹配&
[^-]+
; 匹配 1+ 個非連字符-
: 匹配一個連字符(?<pagination>\\d+)
:匹配 1+ 個數字並將其捕獲在名為pagination
組中&?$
: 在結束前匹配可選&
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.