![](/img/trans.png)
[英]Strip leading and trailing whitespaces within a string matched using regex in php
[英]How to use RegEx to strip specific leading and trailing punctuation in PHP
我们正在清理大量数据,并且发现许多干净数据的示例在最终字符串的开头和结尾留下了不相关的标点符号。 Quotes 和 DoubleQuotes 很好,但需要删除前导/尾随破折号、逗号等
我已经研究了如何删除所有前导和尾随标点符号的答案? ,但我无法找到在 PHP 中完成相同操作的方法。
- some text. dash and period should be removed
"Some Other Text". period should be removed
it's a matter of opinion apostrophe should be kept
/ some more text? Slash should be removed and question mark kept
简而言之,
我怎样才能用 PHP 实现这一点——我发现的几个例子超过了我的 RegEx/JS 能力。
您可以修改模式以包含字符。
$array = array(
'- some text.',
'"Some Other Text".',
'it\'s a matter of opinion',
'/ some more text?'
);
foreach($array as $key => $string){
$array[$key] = preg_replace(array(
'/^[\.\-\/]*/',
'/[\.\-\/]*$/'
), array('', ''), $string);
}
print_r($array);
如果标点符号可能不止一个字符,你可以这样做
function trimFormatting($str){ // trim
$osl = 0;
$pat = '(<br>|,|\s+)';
while($osl!==strlen($str)){
$osl = strlen($str);
$str =preg_replace('/^'.$pat.'|'.$pat.'$/i','',$str);
}
return $str;
}
echo trimFormatting('<BR>,<BR>Hello<BR>World<BR>, <BR>');
// will give "Hello<BR>World"
该例程检查“<BR>”和“,”以及一个或空格(“\\s+”)。 “|” 作为 OR 运算符在例程中使用了 3 次。 它同时在开头“^”和结尾“$”处进行修剪。 它不断循环直到没有更多的匹配被剪掉(即字符串长度不再减少)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.