使用相同的特殊字符时使用正则表达式提取

时间:2015-01-06 21:56:45

标签: regex

我一直在尝试在线使用Regex工具,但似乎没有工作。我很接近,但不确定我错过了什么。

这是文字:

  

瓦伦西亚,洛杉矶,加利福尼亚 - 地图

我想提取州的前两个字母(所以在“,”和“ - ”之间),在这种情况下是“CA”

到目前为止我所做的是:

[,/](.*)[-/]
$1

输出结果为:

  

加利福尼亚州洛杉矶

如果有什么我认为我至少会得到这个州。

4 个答案:

答案 0 :(得分:2)

,\s*(\w\w)[^,]*-

将捕获第1组中的Ca


,       comma
\s*     whitespace
(\w\w)  capture the first two characters
[^,]*   make sure there's no comma up to the next dash
-

答案 1 :(得分:1)

,\s*(\S{2})[^,]*-

你只想参加第一场比赛。

答案 2 :(得分:0)

我假设你使用JavaScript。

你的正则表达式失败了,因为输入中有两个逗号。

一种可能的解决方法是将中间捕获从.(任何字符)修改为[^,](除逗号之外的任何字符)。这将强制正则表达式仅匹配California

所以,试试[,/]([^,]*)[-/]。这是demo的工作原理。

答案 3 :(得分:0)

您可以使用此正则表达式:

.*?,\s(\w\w)[^,]*-

$1是您要查找的前两个字母。