寻找从地址中提取城市名称的表达式。试图在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>
我哪里错了?
答案 0 :(得分:2)
在WebHarvey中,如果正则表达式包含捕获组,则返回其内容。因此,您不需要前瞻。
另一点是你需要匹配一个或多个单词字符,可选地跟随一大块空格,后跟一个或多个单词字符。您的正则表达式包含重复捕获组,其内容在每次迭代时重写,在找到匹配后,组1仅包含let ref = FIRDatabase.database().reference()
let userRef = ref.("location").child("-Khpr_PAuGSVngNspTVW")
userRef.updateChildValues(["lat": 11.324231])
:
使用
n
(\w+(?:[^\S\r\n]+\w+)?),\s\w{2})
部分匹配除CR和LF之外的任何空格。您可以使用[^\S\r\n]+
来匹配任何1个水平空格。