簡體   English   中英

Preg_match 用於正則表達式 php 中的替代值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM