gpt4 book ai didi

php - 尝试使用正则表达式从 "suburb name"中提取 "12 street name, suburb name, CTG 1234"

转载 作者:行者123 更新时间:2023-12-02 04:48:27 30 4
gpt4 key购买 nike

我正在尝试从以下内容中提取郊区名称:

12 street name, suburb name, CTG 1234 

在 PHP 中使用正则表达式。

  • 街道和郊区名称都可以是任意数量的单词长度。
  • CTG 是 state 的首字母缩写词,并且始终为人所知且始终相同。
  • 后跟 4 位邮政编码。

我想出了以下正则表达式,但无法完全理解我想要的内容。

/[\.|,]+\s*(.*?)[\.|,]+*\s*CTG\d{4,4}$/i

哪里:

  • CTG\d{4,4}$是从左边开始找 zip 和州。
  • [\.|,]*\s* 用于匹配至少一个点或逗号,后跟街道和郊区名称后的零个或多个空格。
  • (.*?) 是捕获我的目标。郊区名称。
  • *? 所以它将是非贪婪的。

以上在 preg_match() 中使用,任何给定主题返回匹配数组,其中:

  • arrey[0] = 整场比赛
  • arrey[1]=12 = 街道名称,郊区名称

但是如果在 http://www.regexplanet.com 中尝试它似乎工作正常。

最佳答案

您可以通过以下方式获取郊区名称:

$str = '12 street name, suburb name, CTG 1234';
$pattern = '/[^.,]++(?=[.,]\s*CTG \d{4}$)/';

preg_match($pattern, $str, $result);

echo $result[0];

为了只匹配郊区名称,我使用了前瞻断言 (?=...),它只执行检查而不记录匹配。

图案细节:

/
[^.,]++ # all that is not a . or a , one or more times (possessive)
(?= # open lookahead assertion (means "followed by")
[.,]\s* # a . or a , with optional white characters
CTG \d{4}$ # CTG, a space, four digits, end of string
) # close the lookahead
/

关于php - 尝试使用正则表达式从 "suburb name"中提取 "12 street name, suburb name, CTG 1234",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19334417/

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