簡體   English   中英

在正則表達式數組中查找字符串

[英]Find string in array of regex

在正則表達式模式數組中檢查字符串的最佳方法是什么? 是類似preg_grep的東西嗎?

我需要這樣的結果:

$string = 'myFooString';

$patterns = [
  'some(regex|foo)',
  'my.+String',
  'anotherRegex'
];

$isMatchWithAny = false;

foreach ($patterns as $pattern) {
    if (preg_match('/' . $pattern . '/', $string)){
        $isMatchWithAny = true;
        break;
    }
}

不幸的是, preg_grep提供了與您要求的相反的功能,即單一模式但有一系列輸入: http : //php.net/manual/en/function.preg-grep.php

在這種情況下,您的示例代碼提供了您試圖實現的結果的最簡單結果:

$string = 'myFooString';

$patterns = [
  'some(regex|foo)',
  'my.+String',
  'anotherRegex'
];

$isMatchWithAny = false;

foreach ($patterns as $pattern) {
    if (preg_match('/' . $pattern . '/', $string)){
        $isMatchWithAny = true;
        break;
    }
}

var_dump($isMatchWithAny);

https://eval.in/858431

唯一的其他方法是,如果編寫了更復雜的模式以包含要搜索的所有不同模式,但這將取決於您的應用程序和用例。

暫無
暫無

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

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