Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于从逗号分隔地址提取城市的正则表达式_Regex_Street Address - Fatal编程技术网

Regex 用于从逗号分隔地址提取城市的正则表达式

Regex 用于从逗号分隔地址提取城市的正则表达式,regex,street-address,Regex,Street Address,我有一个这样的地址: 123 Main St, Los Angeles, CA, 90210 (?:[^,]+),\s([^,]+) 我只想捕捉这座城市: Los Angeles 我一直在尝试这样做: 123 Main St, Los Angeles, CA, 90210 (?:[^,]+),\s([^,]+) 但我不知道如何只返回第二组。使用像{2}这样的标志似乎包括到第二个组的每一个,而不仅仅是第二个组 更新 我使用的是使用正则表达式模式的Chrome扩展,因此在这种情况下不可能使

我有一个这样的地址:

123 Main St, Los Angeles, CA, 90210
(?:[^,]+),\s([^,]+)
我只想捕捉这座城市:

Los Angeles
我一直在尝试这样做:

123 Main St, Los Angeles, CA, 90210
(?:[^,]+),\s([^,]+)
但我不知道如何只返回第二组。使用像{2}这样的标志似乎包括到第二个组的每一个,而不仅仅是第二个组

更新


我使用的是使用正则表达式模式的Chrome扩展,因此在这种情况下不可能使用Javascript或其他语言。

您可以尝试的一般模式是:

^[^,]+,\s*([^,]+)
城市名称将在第一个(也是唯一一个)捕获组中可用


我的猜测是,也许这个表达式在这里很有趣

(?<=,\s)([A-Z].*?)(?=[,\s]*[A-Z]{2}[,\s]*\d{5}(?:-\d{4})?)

(?为什么需要一个正则表达式?拆分就足够了

JS中的示例:

var str=“加利福尼亚州洛杉矶大街123号,邮编90210”;
var res=str.split(“,”);
如果(分辨率长度>1)
{
console.log(res[1]);

}
您使用的是什么语言/工具?您的模式是基于我提供的字符串工作的,但我最终需要说明完整的州名称,因此我调整了您的模式,并最终得出以下结论:(?使用regex解析csv确实有点笨拙