Regex 正则表达式:在字符(包括它)第一次出现后获取字符串
我正在尝试从我的站点获取一些旧链接,用301重定向指令重定向到新链接。我需要完成的是删除字符串的第一部分,直到它匹配连字符,然后删除它(包括连字符) 例如:Regex 正则表达式:在字符(包括它)第一次出现后获取字符串,regex,.htaccess,redirect,Regex,.htaccess,Redirect,我正在尝试从我的站点获取一些旧链接,用301重定向指令重定向到新链接。我需要完成的是删除字符串的第一部分,直到它匹配连字符,然后删除它(包括连字符) 例如: http://example.com/19731-la-preservacion-de-la-biodiversidad-es-crucial-para-frenar-la-desertificacion-en-zonas-aridas 或 应输出到: http://example.com/la-preservacion-de-la-bi
http://example.com/19731-la-preservacion-de-la-biodiversidad-es-crucial-para-frenar-la-desertificacion-en-zonas-aridas
或
应输出到:
http://example.com/la-preservacion-de-la-biodiversidad-es-crucial-para-frenar-la-desertificacion-en-zonas-aridas
http://example.com/afecta-la-crisis-alimentaria-ya-a-miles-de-personas
到目前为止我已经试过了
RewriteRule^[^-|-](.*)$$1
和
RewriteRule^([^-]*-)(.*)$$1
但我似乎无法让它工作
谢谢 若要在某个字符(包括该字符)首次出现后获取子字符串,您可以使用与该字符以外的任何字符匹配的,然后您需要启动一个捕获组,将该字符作为其中的第一个原子,并在以下内容后添加
*)
:
^[^-]*(-.*)$
在这里,^[^-]*(-.*.$
匹配整个字符串,第一个-
与它在第1组中登录后的所有字符匹配($1
在重写规则
中替换)
见
详细信息
-字符串的开头^
-零个或多个字符,而不是[^-]*
(否定字符类)-
-第1组((-.*.
):$1
,然后是任何0+字符-
-字符串结束$
(.*?\/)\d+-(.*)
替换:
$1$2
尝试查找^([^/]*/)*)[^-]*-(.*)$
替换$1$3
演示
$1$2