使用相同的特殊字符时使用正则表达式提取
Extract with regex when the same special character is used
我一直在尝试在线使用 Regex 工具,但似乎都不起作用。我很接近但不确定我错过了什么。
这是正文:
Valencia, Los Angeles, California - Map
我想提取状态的前 2 个字母(在“,”和“-”之间),在本例中 "CA"
到目前为止我所做的是:
[,/](.*)[-/]
输出为:
Los Angeles, California
如果有什么我认为我至少会得到状态。
,\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
-
我假设你使用 JavaScript.
您的正则表达式在这种特殊情况下失败,因为您的输入中有两个逗号。
一个可能的修复方法是将中间捕获从 .
(任何字符)修改为 [^,]
(除逗号外的任何字符)。这将强制正则表达式仅匹配 California
。
所以,试试 [,/]([^,]*)[-/]
。这是一个 demo 它是如何工作的。
您可以使用这个正则表达式:
.*?,\s(\w\w)[^,]*-
是您要查找的前两个字母。
,\s*(\S{2})[^,]*-
您只想参加第一场比赛。
我一直在尝试在线使用 Regex 工具,但似乎都不起作用。我很接近但不确定我错过了什么。
这是正文:
Valencia, Los Angeles, California - Map
我想提取状态的前 2 个字母(在“,”和“-”之间),在本例中 "CA"
到目前为止我所做的是:
[,/](.*)[-/]
输出为:
Los Angeles, California
如果有什么我认为我至少会得到状态。
,\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
-
我假设你使用 JavaScript.
您的正则表达式在这种特殊情况下失败,因为您的输入中有两个逗号。
一个可能的修复方法是将中间捕获从 .
(任何字符)修改为 [^,]
(除逗号外的任何字符)。这将强制正则表达式仅匹配 California
。
所以,试试 [,/]([^,]*)[-/]
。这是一个 demo 它是如何工作的。
您可以使用这个正则表达式:
.*?,\s(\w\w)[^,]*-
是您要查找的前两个字母。
,\s*(\S{2})[^,]*-
您只想参加第一场比赛。