gpt4 book ai didi

php - 如何 preg_match 第一次出现在字符串中

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:09 25 4
gpt4 key购买 nike

我正在尝试从电子邮件正文中提取 From:address。这是我目前所拥有的:

$string = "From: user1@somewhere.com This is just a test.. the original message was sent From: user2@abc.com";

$regExp = "/(From:)(.*)/";
$outputArray = array();
if ( preg_match($regExp, $string, $outputArray) ) {
print "$outputArray[2]";
}

我想获取第一次出现 From: .. 的电子邮件地址,有什么建议吗?

最佳答案

您的正则表达式太贪心了:.* 匹配除换行符外的任何 0 个或更多字符,尽可能多。此外,在文字值周围使用捕获组是没有意义的,它会产生不必要的开销。

使用以下正则表达式:

^From:\s*(\S+)

^ 确保我们从字符串的开头开始搜索,From: 按字面意思匹配字符序列,\s*匹配可选空格,(\S+) 捕获 1 个或多个非空白符号。

参见 sample code :

<?php
$string = "From: user1@somewhere.com This is just a test.. the original message was sent From: user2@abc.com";

$regExp = "/^From:\s*(\S+)/";
$outputArray = array();
if ( preg_match($regExp, $string, $outputArray) ) {
print_r($outputArray[1]);
}

您要查找的值在 $outputArray[1] 中。

关于php - 如何 preg_match 第一次出现在字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com