簡體   English   中英

組和量詞{m,n}

[英]Groups and quantifiers {m,n}

可以將數量詞與組一起使用嗎?

例如。 我想匹配以下內容:

  • 11%
  • 09%
  • aa%
  • zy%
  • g1%
  • 8b%...

模式是:2個字母或數字(是否混合)以及以%結尾的字符串...

<?php
echo preg_match('~^([a-z]+[0-9]+){2}%$~', 'a1%'); // 0, I expect 1.

我知道,這個例子沒有太大意義。 一個簡單的[list] {m,n}就可以解決這個問題。 只是為了獲得答案就盡可能簡單。

您確定可以將量詞應用於組。 例如,我有字符串:

HouseCatMouseDog

我有正則表達式:

(Mouse|Cat|Dog){n}

其中n是任何數字。 您可以在此處更改n的值。

對於您的示例(是的, [list]{m,n}會更簡單),只有在字母或更多字母,后跟一個數字或更多字母的情況下,它才有效。 因此,只有g1會匹配。

您不需要使用2個字符類,只有一個可以完成您的工作。

echo preg_match('~^([a-z0-9]{2})%$~', 'a1%'); 

RegExp的含義

^ => It will match at beggining of the string/line
(
    [a-z0-9] => Will match every single character that match a-z(abcdefghijklmnopqrstuvwxyz) class and 0-9(0123456789) class.
    {2} => rule above must be true 2 times
) => Capture block
% => that character must be matched after a-z and 0-9 classes
$ => end of string/line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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