You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP字符串解析求助:从指定格式字符串提取企业名称

解决PHP提取指定字符串的问题

嘿,我来帮你搞定这个字符串提取的难题!你的目标字符串结构很清晰:[区域标签] 公司名称 - (编号),之前的方法之所以拿到了带编号的后半段,大概率是因为没精准定位到分割的边界。给你两种靠谱的解决方案:

方法一:正则表达式(最灵活)

正则能精准匹配这种有固定格式的字符串,直接捕获你需要的公司名称部分:

$inputStr = "[AZ - Domestic] Acme Technologies LLC - (8484383)";
// 正则模式:匹配方括号内容,然后捕获到" - ("之前的所有内容
if (preg_match('/\[[^\]]+\] (.*?) - \(/', $inputStr, $matches)) {
    $companyName = trim($matches[1]);
    echo $companyName; // 输出:Acme Technologies LLC
}

正则说明:

  • \[[^\]]+\]:匹配开头的方括号区域([AZ - Domestic]),[^\]]+确保只匹配到闭合方括号为止
  • (.*?):非贪婪匹配,精准抓取到 - (之前的内容,避免把后面的编号也带进来
  • trim():做个兜底,防止字符串前后有多余空格

方法二:字符串分割(更直观)

如果你的字符串格式永远固定,用分割方法更简单易懂:

$inputStr = "[AZ - Domestic] Acme Technologies LLC - (8484383)";
// 第一步:按"] "分割,拿到方括号后面的部分
$afterBracket = explode('] ', $inputStr)[1] ?? '';
// 第二步:按" - ("分割,拿到前面的公司名称
$companyName = explode(' - (', $afterBracket)[0] ?? '';

echo trim($companyName); // 输出:Acme Technologies LLC

分割说明:

  • 用] 作为第一个分割符,直接跳过前面的区域标签
  • 再用 - (作为第二个分割符,把公司名称和后面的编号彻底分开
  • ?? ''是PHP7+的空合并运算符,防止分割失败导致报错

这两种方法都能精准提取到你需要的Acme Technologies LLC,你可以根据自己的代码习惯选择~

内容的提问来源于stack exchange,提问作者three3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:14:53