我需要一个正则表达式来用连字符替换下划线

I need a regex to replace underscore by hyphen

我的申请有问题。我在我的项目中使用 CodeIgniter,并且禁止在类名中使用连字符(允许使用下划线)。但我想用连字符分隔 URL 中的单词。所以我需要用正则表达式重写 url,以在 htaccess 文件中用连字符替换下划线。 想法?

例如:

我有很多链接:

我想要:

在htaccess文件中,应该有:

RewriteRule ^(.*)_(.*)$ /-

您可以根据需要使用路线更改url。

$route['link-to_something'] = 'class_name/some_function';

编辑后: 试试这个:

RewriteRule ^([^_]*)_([^_]*_.*) - [N]
RewriteRule ^([^_]*)_([^_]*)$ /- [L,R=301]

经过长时间的搜索,确定。我有解决方案:

转到Codeigniter Routes regex - using dashes in controller/method names

当您只需更改一行就可以实现这一点时,为什么还要使用正则表达式?

打开application/config/routes.php并更改

$route['translate_uri_dashes'] = TRUE;

这就是你需要做的。