Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python URI路由的正则表达式_Python_Regex - Fatal编程技术网

Python URI路由的正则表达式

Python URI路由的正则表达式,python,regex,Python,Regex,我正在跟进一个问题,因为问题变了 有效的答案是/(?:[^/]+)/([^/]*)/?([^/]*)/([^/]*),它以$1的形式输出城市,以$2的形式输出类别,但我也只想输出$0,所以你能帮我修改一下吗 看来我终于可以用这个正则表达式做我想做的事情了,它也适用于我之前提出的两个问题 我的计划是实现多租户的功能,以便相同的软件可以使用相同的代码同时服务于圣保罗和德里等大城市,因此我必须使其非常通用,并适用于所有具有相同表达式的位置,即// 还有一个问题,我们说“搜索纽约”是指哪个地区还是

我正在跟进一个问题,因为问题变了

有效的答案是
/(?:[^/]+)/([^/]*)/?([^/]*)/([^/]*)
,它以$1的形式输出城市,以$2的形式输出类别,但我也只想输出$0,所以你能帮我修改一下吗

看来我终于可以用这个正则表达式做我想做的事情了,它也适用于我之前提出的两个问题

我的计划是实现多租户的功能,以便相同的软件可以使用相同的代码同时服务于圣保罗和德里等大城市,因此我必须使其非常通用,并适用于所有具有相同表达式的位置,即//

还有一个问题,我们说“搜索纽约”是指哪个地区还是城市?其中一条信息是谷歌地图的输出,它定义了“纽约”,其中“地区”对应于“行政区域”:

然而,我不认为所有的代码都必须在同一个文件中,因为我可以为每个地区创建一个文件或类似的结构,因为全世界的地区(“州”)总数并不比国家总数大很多,但世界上的城市总数是一个很大的数字。而且,似乎项目中每个国家都有一个文件,这是一种简单而好的组织方式

非常感谢

更新

我发现的正则表达式非常有用

application=webapp.WSGIApplication([('/([^/]+)/?([^/]*)/?([^/]*),Handler),],debug=True)

(?:…) 普通括号的非捕获版本。匹配括号内的任何正则表达式, 但是,在执行匹配或稍后在模式中引用后,无法检索组匹配的子字符串

?:
是指,匹配它但不将其保存在组中,将其删除,然后重试

(?:…) 普通括号的非捕获版本。匹配括号内的任何正则表达式, 但是,在执行匹配或稍后在模式中引用后,无法检索组匹配的子字符串


?:
是指,匹配它但不将其保存在组中,删除它并重试。

您的问题是什么?你似乎在问几个不同的问题,但没有限定你真正想知道的是什么。你的问题有一种气味,是由一个雷格克斯暴露水平极高的人写的。他们让每个人都有点疯狂,这就是为什么它被称为爱:-)……或者你可以把它推到极限,也许看看这里:它现在起作用了。李树阁回答得很好。谢谢你一直问我那些愚蠢的问题。我不确定除了最初的问题之外,所有其他的东西都有什么作用,那么?这个模式被发现了,所以我对此感到非常高兴。请原谅,我混入了一些无关的东西。我发现正则表达式是最难解决的问题之一,因为规范中的一个很小的改变可以改变正则表达式很多。你有什么问题?你似乎在问几个不同的问题,但没有限定你真正想知道的是什么。你的问题有一种气味,是由一个雷格克斯暴露水平极高的人写的。他们让每个人都有点疯狂,这就是为什么它被称为爱:-)……或者你可以把它推到极限,也许看看这里:它现在起作用了。李树阁回答得很好。谢谢你一直问我那些愚蠢的问题。我不确定除了最初的问题之外,所有其他的东西都有什么作用,那么?这个模式被发现了,所以我对此感到非常高兴。请原谅,我混入了一些无关的东西。我发现正则表达式是最困难的问题之一,因为规范中的一个很小的改变就可以改变正则表达式很多。
{
  "name": "New York",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [ {
    "id": "p1",
    "address": "New York, NY, USA",
    "AddressDetails": {
   "Accuracy" : 4,
   "Country" : {
      "AdministrativeArea" : {
         "AdministrativeAreaName" : "NY",
         "SubAdministrativeArea" : {
            "Locality" : {
               "LocalityName" : "New York"
            },
            "SubAdministrativeAreaName" : "New York"
         }
      },
      "CountryName" : "USA",
      "CountryNameCode" : "US"
   }
},
    "ExtendedData": {
      "LatLonBox": {
        "north": 40.8495342,
        "south": 40.5788964,
        "east": -73.7498543,
        "west": -74.2620919
      }
    },
    "Point": {
      "coordinates": [ -74.0059731, 40.7143528, 0 ]
    }
  }, {
    "id": "p2",
    "address": "Manhattan, New York, NY, USA",
    "AddressDetails": {
   "Accuracy" : 4,
   "Country" : {
      "AdministrativeArea" : {
         "AdministrativeAreaName" : "NY",
         "SubAdministrativeArea" : {
            "Locality" : {
               "DependentLocality" : {
                  "DependentLocalityName" : "Manhattan"
               },
               "LocalityName" : "New York"
            },
            "SubAdministrativeAreaName" : "New York"
         }
      },
      "CountryName" : "USA",
      "CountryNameCode" : "US"
   }
},
    "ExtendedData": {
      "LatLonBox": {
        "north": 40.8200450,
        "south": 40.6980780,
        "east": -73.9033130,
        "west": -74.0351490
      }
    },
    "Point": {
      "coordinates": [ -73.9662495, 40.7834345, 0 ]
    }
  } ]
}
: