[過去ログ] 正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g (989レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
826(1): 04/10/29 03:55 ID:??? AAS
>>823
s/([^\^{}])\n/$1/g; # unixの改行
s/([^\^{}])\r\n/$1/g; # windowsの改行
s/([^\^{}])\r/$1/g; # Macの改行
827: 04/10/29 06:16 ID:??? AAS
また丸投げかよ
828(1): 826 04/10/29 12:08 ID:??? AAS
ごめn、まちがった。
s/(^|[^{}])\n/$1/g;
だた。
829(1): 04/10/29 13:38 ID:??? AAS
これでもよくね? s/([^{}])\n/$1/g;
>>823
次に質問するときはちょっとでも努力の跡を見せれ。
830: 04/10/29 13:51 ID:??? AAS
すまない、そしてありがとう。
829でできました。
831(3): 04/10/29 15:00 ID:??? AAS
828、829とも改行が続く場合に削除できない。
また、829では先頭の改行を削除できない。
直前のパターンを指定する場合、普通は
(?<=PATTERN) や (?<!PATTERN) を使う。
この場合なら、s/(?<![{}])\n//g; とする。
>>829
次に回答するときはちょっとでも試行の跡を見せれ。
832(2): 04/10/29 15:14 ID:??? AAS
>>831
改行が続く場合と、先頭の改行の違いを述べよ。
828が正解。
実際に試してから偉そうなこと言えよな。
833(1): 04/10/29 16:20 ID:??? AAS
>>823-832
# 「直前が { もしくは } の改行のみ残る」なら、これは3行になる筈
my $orig = "\n\nfoo\n\n{\nbar\n}\n\nbaz\n\n";
(my $copy = $orig) =~ s/(^|[^{}])\n/$1/g; # 828
print "[$copy]\n";
# [
# foo
# {
# bar}
# baz]
省7
834(2): 04/10/29 16:25 ID:??? AAS
>>832
$_ = <<EOH;
abc
123
EOH
の時、1行目のが「先頭の改行(^\n)」で、
abcの後ろと次の空行の改行が「続く改行(\n\n+)」。
これを>>828に通すと
abc
123
省5
835: 04/10/29 16:32 ID:??? AAS
>>832
833-834を踏まえた上で、828が正解である根拠を述べよ。
831が正解。
頭良くなってから偉そうなこと言えよな。
836(1): 04/10/29 16:34 ID:??? AAS
>>833=>>834
ばか?変数に入れたものなんか誰も処理しないよ。
変数に書いてる間にエディタで取った方が速いよ。
普通のファイルでやって皆。
--------
foo
{
bar
}
省2
837: 04/10/29 16:38 ID:??? AAS
>>836
>>825は「とりあえずはPerlでよろしく」と言ってるわけだが。
838: 825 04/10/29 16:40 ID:??? AAS
解決したんでもうやめれ。
839: 04/10/29 16:43 ID:??? AAS
>>834
いちいちヒアドキュメントなんか書いてる間に
(あるいはスクリプトに挿入してEOHなんてやってる
間に)エディタの置換でやったほうが速いよ。
>>831が間違いだと言ってないからな。
ただ、否定の?は遅いからな(プッ
840: 04/10/29 16:46 ID:??? AAS
ということで、828が最善解。
841(1): 04/10/29 17:58 ID:jREmvBrx(1) AAS
JavaScriptの正規表現使って文字列の先頭と最後の空白を取りたいのですが
どう書けばいいのでしょうか?
abc dfg hij a
を(先頭と最後に3つ空白がある)
abc dfg hij a
みたいにしたいのです。
教えてください。
842: 04/10/29 18:24 ID:??? AAS
>>841
str = " abc dfg hij a ".replace(/^\s+|\s+$/g, "");
分かりやすく、前後のスペースは全角にしたので注意。
.replaceを適用した文字列や変数自身は置換されないので、
結果を受け取る必要あり。
843(1): 04/11/02 02:39 ID:??? AAS
/*str1*/str2/*str3*/
という文字列があって/*〜*/の部分をereg_replaceで空文字列に置き換えようとしたとき
ereg_replace("(/\*.*\*/)","","/*str1*/str2/*str3*/");
てやると、先頭の/*と末尾の*/がマッチして全部消えるんだけど
test2は残して、test1とtest3だけ消す方法ってある?
844: 04/11/02 04:38 ID:??? AAS
test?
( ゚Д゚)
845: 04/11/02 06:03 ID:??? AAS
(/\*.*?\*/)
上下前次1-新書関写板覧索設栞歴
あと 144 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s