我有这个输入字符串:'- - Adele Gislan - Web Developer - - - '
并且预期的输出是这个字符串:Adele Gislan - Web Developer
我使用这个正则表达式
$urli='- - Adele Gislan - Web Developer - - - ';
$urli = preg_replace("/\-[[:space:]]+$/","",$urli);
$urli = preg_replace("/\-+$/","",$urli);
但这会移除特殊字符" - "或" - "只有一次。
我试试这个
$urli = rtrim($urli, '-');
$urli = ltrim($urli, '-');
但不理想
答案 0 :(得分:1)
您需要在字符类中包含空格和-
符号
^[ -]+|[ -]+$
只需用空字符串替换匹配的字符。
PHP代码将是,
<?php
$mystring = "- - Adele Gislan - Web Developer - - - ";
echo preg_replace('~^[ -]+|[ -]+$~', '', $mystring);
?>
<强>输出:强>
Adele Gislan - Web Developer
<强>解释强>
^
断言我们刚开始。[ -]+
匹配一个或多个空格或-
个字符。|
逻辑OR运算符,通常用于组合两个正则表达式。[ -]+
匹配一个或多个空格或-
个字符。$
断言我们在行尾。答案 1 :(得分:0)
来自:
- - Adele Gislan - Web Developer - - -
到
Adele Gislan - Web Developer
使用:
[ -]{4,}
PHP预浸料:
'/[ -]{4,}/m'
或者你可以使用:
(?: *-+ *){2,}
PHP预浸料:
'/(?: *-+ *){2,}/m'
答案 2 :(得分:0)
如果您只想修剪前导和尾随的破折号和空格,则无需使用正则表达式。您可以使用一次trim
来电话:
echo trim($urli, '- ');
第二个参数是要删除的字符列表。
输出:
Adele Gislan - Web Developer
答案 3 :(得分:0)
我是非常贪心并简单地匹配单词界限:
$str = ' - - Adele Gislan - Web Developer - - -';
$str = preg_replace('/.*?(\b.+\b).*/', '$1', $str);