我正在尝试使用preg_match_all找到单词“my”和“is”或“my”和“are”之间的字符串部分,但由于某种原因,它根本找不到任何匹配项。我不确定我做错了什么。请看一下我的代码:
$tempText = "My hair is black.";
if ($matches == null) {
$matches = preg_match_all('/my\\s+(.+?)\\s+is/', $tempText, $matches);
$matches = $matches[1][0];
}
if ($matches == null) {
$matches = preg_match_all('/my\\s+(.+?)\\s+are/', $tempText, $matches);
$matches = $matches[1][0];
}
echo $matches;
预期结果
hair
实际结果
null
答案 0 :(得分:1)
你的大写"我的"与你的小写字母不匹配" my"因为它不区分大小写。以下代码无论如何都匹配。
$tempText = "My hair is black.";
if ($matches == null) {
preg_match_all('!my\s(.*?)\sis!is', $tempText, $matches);
$matches = $matches[1][0];
}
if ($matches == null) {
preg_match_all('!my\s(.*?)\sare!is', $tempText, $matches);
$matches = $matches[1][0];
}
echo $matches;
答案 1 :(得分:0)
您可以使用此模式:/my(.*)is/i