我在这里使用了startsWith()函数startsWith() and endsWith() functions in PHP
但我希望它只匹配完整的单词。
目前它将匹配以下内容:
hi
high
hiho
但我希望它只匹配" hi"而不是其他两个单词,如果输入是:
hi there
答案 0 :(得分:2)
您可以将它与此正则表达式匹配:/ ^ hi $ | ^ hi \ s | \ shi \ s | \ shi $ /
$test = ['hi', 'hi there', 'high', 'hiho'];
$pattern = '/^hi$|^hi\s|\shi\s|\shi$/';
$matches = [];
foreach ($test as $t) {
var_dump($t);
preg_match($pattern, $t, $matches);
var_dump($matches);
}
零件解释:
这些部分用管道“|”粘在一起,在正则表达式中表示“或”,所以整个表达式匹配任何一个部分
答案 1 :(得分:0)
如果您针对hi
字测试整个文字,请尝试以下操作:
<?php
preg_match_all('@hi\s@i',
"hi me
hi there
high
highlander
historic
hire",
$matches);
var_dump($matches);
测试 - 在此处修改:https://regex101.com/r/tV3jR6/1