3

我有一个 php reg 表达式,它从任何字符串中删除任何特殊字符并用连字符替换该字符。问题是如果有两个特殊字符相互跟随,我会得到两个连字符。例如,如果我输入test@hhh%^我得到的文本,test-hhh--或者如果我输入test@hhh%^kkk我得到test-hhh--kkk. 我要我的表情给我test-hhh。我想删除两个相似的连字符以及字符串中的任何尾随连字符。我的代码在这里

$slug = preg_replace('/[^a-zA-Z0-9]/', '-', $slug);
4

2 回答 2

2

首先将此正则表达式应用于您的字符串:

$slug = preg_replace('#-{2,}#', '-', $slug);

其次,您应用带有连字符作为额外参数的右修剪(或常规修剪)。

$slug = trim($slug, '-');
于 2013-02-19T07:51:27.890 回答
0

你可以在这里找到有用的信息http://www.regular-expressions.info/repeat.html,基本上你需要指定一个重复修饰符。

于 2013-02-19T07:48:40.310 回答