【问题标题】:Laravel route regexLaravel 路由正则表达式
【发布时间】:2021-01-02 14:54:19
【问题描述】:

我正在尝试匹配 url,但不知道我错在哪里。我想匹配以下网址: /{type}/{location}.{upper-case-iso-code}/name.

示例:/hotel/paris.FR/belevue

我尝试使用以下表达式:

(.*\.])[A-Z]{2}

([]{1,}\.])[A-Z]{2}

这是我的路线:

Route::get('/hotel/{city_hotel_link}/{hotel}', 'HomeController@hotel')->where...;

【问题讨论】:

  • 哪个部分与给定的正则表达式匹配?
  • 我正在匹配 city_hotel_link。
  • 尝试使用这个[A-Za-z0-9]+\.[A-Z]{2}

标签: php laravel routes


【解决方案1】:

您可以使用此正则表达式来分隔位置、点和城市代码:

(.*).([A-Z]{2})

所以第一组是位置,第二组是城市代码。

【讨论】:

    【解决方案2】:
    ^[a-z]+\/[a-z]+\.[A-Z]+\/[a-z]+$
    

    匹配

    hotel/paris.FR/belevue
    

    如果 ISO 代码只有 2 个字符:

    ^[a-z]+\/[a-z]+\.[A-Z]{2}\/[a-z]+$
    

    仅适用于 city_hotel_link 部分的正则表达式

    [a-z]+\.[A-Z]{2}\/?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-13
      • 2016-10-10
      • 1970-01-01
      • 2015-09-13
      • 2018-08-06
      • 2018-06-06
      • 2020-10-10
      • 2019-01-01
      相关资源
      最近更新 更多