正则表达式提取城市名称(.NET)

时间:2017-04-18 17:59:02

标签: regex regex-lookarounds webharvy

寻找从地址中提取城市名称的表达式。试图在WebHarvy中使用这个表达式,它使用正则表达式的.NET风格

示例地址

1234 Savoy Dr Ste 123
New Houston, TX 77036-3320

1234 Savoy Dr Ste 510
Texas, TX 77036-3320

所以城市名称可以是单个或两个单词。

我正在尝试的表达是

(\w|\w\s\w)+(?=,\s\w{2})

当我在RegexStorm上尝试时,它似乎工作得很好,但是当我在WebHarvy中使用它时,它只捕获城市名称New Houston的'n'和来自Austin的'n'< / p>

我哪里错了?

1 个答案:

答案 0 :(得分:2)

在WebHarvey中,如果正则表达式包含捕获组,则返回其内容。因此,您不需要前瞻。

另一点是你需要匹配一个或多个单词字符,可选地跟随一大块空格,后跟一个或多个单词字符。您的正则表达式包含重复捕获组,其内容在每次迭代时重写,在找到匹配后,组1仅包含let ref = FIRDatabase.database().reference() let userRef = ref.("location").child("-Khpr_PAuGSVngNspTVW") userRef.updateChildValues(["lat": 11.324231])

enter image description here

使用

n

请参阅regex demo here

(\w+(?:[^\S\r\n]+\w+)?),\s\w{2}) 部分匹配除CR和LF之外的任何空格。您可以使用[^\S\r\n]+来匹配任何1个水平空格。

enter image description here