我正在尝试在 php 中获取正则表达式的最小匹配。
例如:如果我有电视和电话这两个词,并且用户输入是 tel,我的正则表达式应该返回最小的词,在本例中是电话。
简而言之,我正在尝试做一个搜索脚本。但是对于用户输入中缺少的字母,我使用此 t[a-zA-Z0-9]{0,2}l[a-zA-Z0-9]{0,}
所以我的单词的最后一个字母后跟 N 个字符。
我的问题是:我怎样才能让我的 REGEXP 显示最小的单词。
最佳答案
很遗憾,您做不到。 Regex 可以匹配你想要的,但它不提供任何比较子匹配的函数。您必须匹配整个字符串,并根据您的情况通过 PHP 代码比较子匹配项。
// your array of matched words
$words = array(...);
$foundWordLength = null;
$foundWord = '';
foreach ($words as $word) {
if (strlen($word) < $foundWordLength || $foundWordLength === null) {
$wordLength = strlen($word);
$foundWord = $word;
}
}
echo $foundWord;
关于php - RegExp PHP 显示最小匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353000/