結論から
(replace-regexp-in-string "\\`\\(?:\\s-\\|\n\\)+\\|\\(?:\\s-\\|\n\\)+\\'" "" str)
経緯
" \n 12345 hoge\nhoge \n hago \n a \n"
みたいな文字列を
"12345 hoge\nhoge \n hago \n a"
てな感じで、先頭と末尾の空白や改行を取り除くってのをしたかった。
最初は
(replace-regexp-in-string "^\\(?:\\s-\\|\n\\)+\\|\\(?:\\s-\\|\n\\)+$" "" str)
とかしてたんだけど、これだと
"12345 hoge hogehago a"
ってなっちゃってた。複数行と見なし、行頭と行末の改行や空白を削除しちゃってるんだと思う。
で、最終的に最初のやつになりました。
これであってるかなー。一応できてるっぽいけど。
正規表現 | 意味 |
---|---|
\` | 文字列・バッファの先頭 |
^ | 行頭 |
\' | 文字列・バッファの末尾 |
$ | 行末 |
もっとかっこいいのあったら教えて下さい。