![](/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.