我坚持使用我想做的正则表达式搜索。假设以下列表(注意换行符):
Iowa
Big Store
5 Washington Blvd W.
555-123-456
Market 42
721 23th St. S
555-789-123
New York
Cool Café
23 5th Ave.
123-456-789
Colorado
Pet Shop
1225 Hot St. N.
654-897-215
Discount Inn
25 Lincoln Rd.
456-987-321
Location 6
Address 6
Telephone 6
所以,我想我会先使用 \n (换行符)来捕获状态,然后是以下所有位置及其地址和电话号码。这是我最后一次工作迭代:
(\n{3}(.*)(?:\n{2}(.*)\n{1}(.*)\n{1}(.*)))
那里的这个美丽只捕获所有状态和每个状态之后的第一个位置,所以我认为“+
在非捕获组的末尾添加一个应该获取其余位置”。像这样:
(\n{3}(.*)(?:\n{2}(.*)\n{1}(.*)\n{1}(.*))+)
谎言。它没有。它只是打破。
我做错了吗?我怎样才能让它捕获状态之间的每个位置?
我的目标是将每个组收集到一个数组中,如下所示:
locations[0][0][0] -> 'Big Store'
locations[0][0][1] -> '5 Washington Blvd W.'
locations[0][0][2] -> '555-123-456'
...
locations[1][0][0] -> 'Cool Café'
locations[1][0][1] -> '23 5th Ave.'
locations[1][0][2] -> '123-456-789'
或类似的。
谢谢!