1. ホーム
  2. php

[解決済み] 文字列の一部を削除する。ただし、文字列の末尾にある場合に限る。

2023-07-10 04:10:16

質問

文字列の部分文字列を削除したいのですが、文字列のENDにあるときだけ削除する必要があります。

例えば、以下の文字列の末尾にある'string'を削除する場合。

"this is a test string" ->  "this is a test "
"this string is a test string" - > "this string is a test "
"this string is a test" -> "this string is a test"

任意のアイデア?おそらくpreg_replaceのようなものでしょうが、どのように?

どのように解決するのですか?

が使われていることに気づくでしょう。 $ 文字が使われていることに気づくだろう。

$new_str = preg_replace('/string$/', '', $str);

文字列がユーザー提供の変数である場合、その文字列を preg_quote を最初に実行するのがよいでしょう。

$remove = $_GET['remove']; // or whatever the case may be
$new_str = preg_replace('/'. preg_quote($remove, '/') . '$/', '', $str);