REGEX表达式:获取斜线后或最后一个点后的两个字母



我想使用REGEX表达式获取一个国家的ISO代码(两个字母(

例如,对于国家/地区Ireland,ISO代码为ie。ISO代码可以在斜线/之后或最后一个.之后找到

这是我的RewriteRule:

RewriteRule ^gallery/country(?:/[^/]*([a-zA-Z-9]{2}))?/?$ gallery/gallery.php?country=$1 [L,QSA]

以下是一些有效的url。。。如果可用,我想选择ISO代码:

画廊/国家

画廊/国家/

画廊/国家/ie

画廊/国家/ie/

画廊/国家/爱尔兰

画廊/国家/爱尔兰/

画廊/乡村/爱尔兰爱情。ie

画廊/乡村/爱尔兰爱情。ie/

画廊/国家/爱尔兰.69-love.ie/

我试着调整模板公式,我几乎所有的seo url都使用这个公式,但我在这个方面遇到了困难。以下是我迄今为止所做的工作。

^gallery/country(?:/[^/]*([a-zA-Z-9]{2}))?/?$

https://regex101.com/r/88azeh/6

您能根据您显示的示例尝试以下操作吗。在引用组中捕获.之后的所有内容,并在此处重写时使用它。请确保在测试任何URL之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule .([a-zA-Z]+){2}/?$ gallery/gallery.php?country=$1 [L]


以上不会检查URI的条件,为了使其更具体到库,请尝试以下操作。

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^gallery/country.*.([a-zA-Z]+){2}/?$ gallery/gallery.php?country=$1 [L]

您可以使用

^gallery/country/(?:.*[/.])?([a-zA-Z]{2})/?$

请参阅regex演示。详细信息:

  • ^-开始输入
  • gallery/country/-文字字符串
  • (?:.*[/.])?-可选模式匹配
    • .*-除了换行符之外的任何零个或多个字符,尽可能多
    • [/.]-/.
  • ([a-zA-Z]{2})-第1组:两个ASCII字母
  • /?-可选/
  • $—字符串结束

相关内容

最新更新