文字列の前後の空白を削除するには (strip / trim) 2015/06/23
文字列の前や後ろにある空白を削除する方法の、プログラミング言語別のメモ。言語によってメソッド名/関数名が trim
だったり strip
だったり。
strings.TrimSpace(str)
str.trim()
str.trim
trim($str)
{$str|trim}
str.strip()
str.strip
# $str自体を書き換える
$str =~ s/\A\s*(.*?)\s*\z/$1/;
Go言語 (golang) 2015/02/16
strings
パッケージのTrimSpace
関数を使う。
package main
import "fmt"
import "strings"
func main() {
str := " abc "
fmt.Println(strings.TrimSpace(str));
// => abc
}
Java / Scala 2014/11/13
Javaでの例
String trimmedStr = str.trim();
Scalaでの例
val trimmedStr = str.trim;
Signature:
String java.lang.String#trim()
Java/Scalaの文字列は不変であるので、このメソッドは元の文字列を変更せずに、両端の空白を削除した新しい文字列を返す。
両端にある文字コードが 0x20
以下の文字をすべて削除するので、スペースだけでなく改行やタブなども削除される。
0x7F
は削除しない。
java.lang.String#trim
| Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#trim–
PHP 2016/09/16
trim
関数で両端にある空白類を削除できる。
$str = trim($str);
$str = trim($str, $charlist);
2番目の引数を指定しない場合は、空白類として以下の文字が削除される。
- 空白
\x20
- タブ
\x09
\t
- 垂直タブ
\x0B
- LF
\x0A
\n
- CR
\x0D
\r
- NUL
\x00
\0
例
# 改行コードのみを削除
trim($str, "\r\n")
trim
関数 | PHP Manual
http://php.net/manual/ja/function.trim.php
trim
は全角に対応しているので、たとえ第2引数に全角スペースを指定しても正常に動作しない。第2引数に全角スペースを入れると、第1引数の内容によっては文字列が破壊されて文字化けを起こしてしまう。
PHPで文字列の最初と最後の半角、全角スペースを取り除く
http://unsolublesugar.com/20120622/200605/
Smarty 2014/10/13
PHPの関数をそのまま修飾子として使えるので、trimして表示したい場合は、以下のように書ける。
{$str|trim}
{strip}
というのがあるが、これは、HTMLタグの間にある改行やスペースを削除してくれるもので、trim
とは別。ソースコードのインデントなどを維持したまま、
HTMLの余計な空白による悪影響を排除するための機能。
http://www.smarty.net/docsv2/ja/language.function.strip.tpl
Python 2014/09/18
文字列にあるメソッド strip
, lstrip
, rstrip
を使う。
str.strip() # 先頭と末尾の空白を削除する非破壊的メソッド
str.lstrip() # 先頭の空白を削除する非破壊的メソッド
str.rstrip() # 末尾の空白を削除する非破壊的メソッド
ちょっと調べたところ、空白には" "
(\x20
)以外にタブ(\t
)や改行(\n
, \r
)も含まれるが、
0x20
以下のすべての制御文字が削除されるわけでもないみたい。以下の例の通り、例えば \a
は削除されない。
str = " \r\n\t\aabc"
print(len(str.strip()))
# => 4
string.strip
| Python 2.7 documentation
http://docs.python.jp/2/library/string.html#string.strip
string.lstrip
| Python 2.7 documentation
http://docs.python.jp/2/library/string.html#string.lstrip
string.rstrip
| Python 2.7 documentation
http://docs.python.jp/2/library/string.html#string.rstrip
string.strip
| Python 3 documentation
http://docs.python.jp/3/library/stdtypes.html#str.strip
string.lstrip
| Python 3 documentation
http://docs.python.jp/3/library/stdtypes.html#str.lstrip
string.rstrip
| Python 3 documentation
http://docs.python.jp/3/library/stdtypes.html#str.rstrip
Ruby 2013/04/10
str.strip
str.strip!
http://doc.ruby-lang.org/ja/2.0.0/method/String/i/strip.html
空白文字の定義は
" \t\r\n\f\v"
です。 また、文字列右側からは"\0"
も取り除きますが、 左側の"\0"
は取り除きません。
最後の改行のみを削除するのは chomp
。
str.chomp
str.chomp!
http://doc.ruby-lang.org/ja/2.0.0/method/String/i/chomp.html
Perl 2015/01/08
いったん変数に入れた文字列から以下のようにして両端の空白を取り除く。
$str =~ s/\A\s*(.*?)\s*\z/$1/;
JavaScript 2013/09/11
以前のJavaScriptには trim をする関数がなかったので、以下のjQueryの関数などを使っていた。
jQuery.trim(str)
http://api.jquery.com/jQuery.trim/
http://semooh.jp/jquery/api/utilities/jQuery.trim/str/
だが、最近は文字列のメソッドとして存在するらしい。
var str = " abc ";
console.log(str.trim());
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/trim