簡體   English   中英

正則表達式 - 在字符串末尾修剪字符

[英]Regex - Trim character at the end of a string

我試圖刪除字符串末尾的尾隨- (破折號)。 這是我的代碼:

<?php

$str = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';

echo ereg_replace('([^a-z0-9]+)','-',strtolower($str));

?>

產生這個:

save-45-wed-beach-co-ed-6s-jul-aug-

如何刪除特定的尾隨字符,在這種情況下是破折號?

提前致謝。

使用rtrim

rtrim($str, "-")

如果你堅持使用正則表達式,你可以做到

preg_replace('/-$/', '', $str)

$字符匹配主題的結尾。

另一種方法。

<?php

$string = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';
$search = array('/[^a-z0-9]+/', '/[^a-z0-9]$/');
$replace = array('-', '');
echo preg_replace($search, $replace, strtolower($string));

?>

輸出。

save-45-wed-beach-co-ed-6s-jul-aug

你的正則表達式是錯誤的,因為它用短划線刪除了所有非字母數字字符。

那應該是

echo ereg_replace('-$','',strtolower($str));

$表示“字符串結束”,第二個參數是替換。 (至少我是這么認為的,我不知道php ereg_replace函數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM