正規表現道場 Part2
【正規表現道場の掟】 ・言語不問 ・質問も大歓迎。使用言語を書くのを忘れずに。 正規表現と関係ない話・質問は他スレへどうぞ。 前スレ 正規表現道場 http://kohada.2ch.net/test/read.cgi/php/1168450843/ まだ連投規制が解除されないなう ## m// キャッシュを保持してない状態では空文字列にマッチする。 うっかりするとバグの原因になり得る。 .scの連投規制は俺も食らったけど(専ブラだと「書き込めたかも…」で書けてない状態)、 Webブラウザで投稿したらBOT疑惑なのでCapchaしろになってそれで解除できた。 URLを貼りまくって連投規制になった場合は知らん。 >>178 俺の場合は「連続投稿は禁止されています。Error!」って出るだけ。 普通に連続投稿が原因で規制食らってるみたいだからもうダメかも分からんね。 人が少ないから自然に独り言みたいになるのにそれで規制されたら ますます人少なくなるなw >>2 正規表現メモ (?num) の説明文にある・・ ------------------- (\()?[^()]+(?(1)\)) ------------------- これは (?num) とはまったく関係ない正規表現。ただの条件文。 >>182 ---------------------------- (?(R)...) PCREで、再帰的パターンの開始を示します。 <(?:(?(R)\\d++|[^<>]*+)|(?R))*> ---------------------------- 説明文は間違い。これは条件式の条件。\\d は \d の間違い。 perldoc.jp http://perldoc.jp/docs/perl/5.14.1/perlre.pod (?(condition)yes-pattern|no-pattern) の項目を参照。 詳説 正規表現のAmazon値 (1年前との比較) ・古本 初版 &nbsp;500円 → 1998円 2版 1600円 → 3150円 3版 4000円 → 3709円 ・新品 3版 5184円 Amazon - "正規表現" http://www.amazon.co.jp/s/field-keywords=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE 文字参照の処理、間違えてますよ > 2ch.net ttp://cpansearch.perl.org/src/DANKOGAI/Unicode-Char-0.02/lib/Unicode/Char.pm ↓ ^ か \A 忘れてね? ------------------------ $method =~ s/.*:://o; ------------------------ ---------------------------------------------------------- my ($hex, $name) = ($line =~ /^([0-9A-Fa-f]+)\s+(.*)/); next if $name =~ /[a-z]/; # range, not character ---------------------------------------------------------- 2行目だけ小文字に限定されてる。これで良いのか悪いのかは分からないが。 ttp://cpansearch.perl.org/src/DANKOGAI/Lingua-JA-Numbers-0.04/lib/Lingua/JA/Numbers.pm ----- せっかく [eE] と書いてるのに /i = ($num =~ /([+-])?(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?/io); ----- ちゃんと動くんだろうけどアンカー付けないのが気持ち悪い。 $int =~ s/(.*)(.{48})\z/$2/o; ----- これミスでね? [k|g] if ($style =~ /(?:romaji|[k|g]ana)$/){ 本人に直接言う勇気がないらしい。まこと残念な人である 皆はこうならぬように あれ、/o が使われてる。なんでapache logのltsv変換には 使われてなかったんだろう。ああいう時こそ効果的なのに。 ■ combined2ltsv.pl の re で /o の有無をタイム計測 /o なし 12724/s /o あり 31689/s /o あり は2.5倍早い。これは報告したほうがいいかも。 (>>186 ) これに /o がついてるとなんか笑ってしまうw 余談追加。俺は報告なんかしないんで報告したい人がいたらしてね。 小飼 弾が手負いのうちに容赦なくツッコミを入れておく http://akiba.geocities.jp/hp20140401/2014/006.html (>>188 ) --------------- use utf8; --------------- \d --------------- 弾たんにならこれで通じるだろう。(確信) 神戸大:オートマトン ttp://kurt.scitec.kobe-u.ac.jp/~kikyo/lec/07/automaton/k5.pdf 行列の次は集合か・・もう忘れたよ・・覚えたことないけど。 Q、 perlの正規表現では \A\z == ε である。では、 ??? == φ の ??? は何になるか。 if( () =~ "" ){ print "hit\n"; } else { print "no\n"; }; 結果 hit 答え、なし () と "" を比較して no を返す方法はあるか。( φとεの比較 ) () eq "" () == "" "" eq undef "" == undef () eq undef () == undef すべてtrueが返る。 弾たん : perl - にも真偽値は存在する http://blog.livedoor.jp/dankogai/archives/51268304.html ちなみにブログのトップではGoogle Chromecastをボロクソに叩きつつ、Chromecastへのamazonアフィを 張るというすご技を展開されております。 こういう人相手に>>193 を報告しにいってもスルーされるだけだと思うよ。カネにならないからね。 >>201 それ、お前向けにカスタマイズされてるだけだろ。 javascriptでhtmlタグ内以外での検索をしようとしていますが、上手く行きません。お助け下さい。 lat = 'あい'; body = '<a href="あい">あい</a>'; reg = new RegExp(">[^<][\s\S]*?" + lat + "[\s\S]*?<","m"); body.match(reg); console.log(reg.index); 13が返って欲しいのですが、undifinedになります。 当スレは中級者以上向けになっているのでこちらへ。 Regular Expression(正規表現) Part12 http://peace.2ch.net/test/read.cgi/tech/1387257592/ jsならieか否か、または両方かも書いたほうが良いでしょう。 確率の基本 - 青空学園 http://aozoragakuen.sakura. ne.jp/probability/probability.html 豪快に脱線中。言論統制対策でスペース。 確率 1/10 で当たるんなら 10 回やれば当たる? http://www.math.kobe-u.ac.jp/HOME/saji/mathyomi/probability.html 確率は正規表現の処理効率向上に使う。 "|" による分岐で確率の高いほうを前に置いたほうが早くなるetc.. ## 確率の実験 my $cnt=0; for (my $i=0; $i<1000000; $i++){ if ( int(rand(3)) == 0 || int(rand(3)) == 2 || int(rand(3)) == 1) { $cnt++; }# if } #for print "$cnt\n"; __END__ && ・・・ A∧B || ・・・ A∨B 傘スレの無能っぷりが酷い。正規表現作ってやりゃ済む話じゃないか。 \Gを知らないのか使えないのか知らんけど・・ テキストエディタの正規表現には関わりたくないや。 >>220 知らなかったの方だけど、こそこそ指摘するとか鬱陶しい奴だな… \G(?:@command|,) タダでスキルアップさせてやったんだから文句言うなっしー。 ★2ch勢いランキングサイトリスト★ ◎ +ニュース ・ 2NN ・ 2chTimes ◎ +ニュース新着 ・ 2NN新着 ・ Headline BBY ◎ +ニュース他 ・ Desktop2ch ・ 記者別一覧 ◎ 全板 ・ 全板縦断勢いランキング ・ スレッドランキング総合ランキング ◎ 実況込み ・ 2勢 ・ READ2CH ・ i-ikioi ※ 要サイト名検索 > ※ ヤフーのHTMLには javascript が使われており、正規表現がコードの一部に誤爆します。 ・・・ならテストデータ変えろよと。 群論入門 http://www.nurs.or.jp/ ~lionfan/ironna_05.html その1 - 17P × 60度 ○ 120度 preg_replaceで文章内に<br /><br />が出現した以降の文字をすべて削除するのはどうすればいいですか? 「正規表現」などを使う場合には、【regex railroad diagram】を利用すれば、とても分かりやすく「図式化」してくれます http://plus.appgiga.jp/masatolan/2014/10/31/54305/ 2ch専ブラで「1文字だけしか書かれていないレス」をNG処理する場合はどういった表現をすればいいのでしょうか 正規表現で電話番号を確認するにはどうしたらいいですか? 固定番号 携帯番号 フリーダイヤル 国際番号 といったものがあるのでわかりません。(緊急ダイヤル系は無視して構いません) どなたか正規表現を教えてください 電話番号とは何かって質問はスレ違い。 自分の定義する電話番号はこうですって(正規表現以外の方法で)提示してください。 緊急ダイヤル系は無視して構いませんって、つまりそれが何だか含めた電話番号とは何ぞやを 考慮して回答しろって書いてあるじゃねーか。 しるかそんなモン。 >>240 ありがとうございます! 参考にしてみます データから例をあげないと書きようがないよね ハイフンあったりなかったり、それら含めて全部なのか・・・ 1.文字列の末尾にある数字を1〜2桁まで抽出したい(末尾に1文字までなら数字以外が入っても構わない) 2.抽出した数字が1桁の場合は先頭に「0」を足して二桁に変えたい これを正規表現1行で行いたいのですが 検索:.*?(\d{1,2})(\D{0,1})$ 置換:\1 これで1つ目はいけたんですが、さらに2つ目の内容を正規表現1行で行うことは可能でしょうか? >>244 しっかり纏められて助かります^^b ありがとう! > \G 直前の一致文字列の末尾 こう覚えちゃう人多いんだよねぇ。こういうサイトが嘘広めてるんだろうな。 お前はいったい何なんだ? 必死に勉強したわけでもなく、必死に働いたわけでもなく 何も築かず、耐えず、乗り越えず、ただダラダラ過ごし 自分の都合の良い妄想だけを垂れ流す。 お前は今のゴミみたいな人生を、今は仮、本当の自分を使っていないだけ そう飽きず言い続け、結局はそのまま死ぬ 最底辺キモヲタで底辺人生の今が本物であることに、そろそろ気が付こうぜ! 改行や余計な文字が入ってる場合のNGはどう書けば良いでしょうか? 例です V i からきますた! p この[V∨vv]→[IIii]→[PPpp]→NGを完成させたいです [V∨vv][^IIii]*[IIii][^PPpp]*[PPpp] 尚、テストはしてない >>253 出来ました! ありがとうございます! 何故出来たかよく分かんないので研究します! 青空にある文章で章ごとに一、二・・・百八十三と数字 がついているのですが、それを一括して置換するにはどうすれば いいでしょうか?漢数字の間には改行がついています。 質問よろしいでしょうか? 一文字のみのレスを正規表現で指定するにはどうすればよいでしょうか マ イ ン ド コ ン ト ロ ー ル の手法 ・沢山の人が、偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い 靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト 10人に一人は カ ル ト か 外 国 人 「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !,,,, 「ちな」をNGにしたいけど、「ありがちな」や「ちなみに」はNG対象外としたい ちな(!?み) これで「ちなみに」は対象外にできたんだが、「ありがちな」も同時に対象外にするにはどうしたらいい? 「ちなみに」の略として「ちな」を使ってるのを想定してるとゲスパーするが、 「ちな」を含む言葉なんて沢山あるから、それらを考慮し始めるとキリが無い 行頭にある場合とかで妥協しときなせ >>261 ご明察 100%問題なくNGにできるとは思ってなくて、NGの誤爆が減ればいいなって感じで質問してみた そもそも、 "AB" には一致して "xyAB" には一致しない正規表現って書けるんだろうか 俺の実力じゃよく分からんかった >>262 否定後読み(戻り読み) (jscriptには無いので使用環境によっては使えないことに注意) >>263 おー、サンクス >>259 の課題はこれでいけた、Janeで一応動いてるっぽい(>>259 のは書式間違ってたねすまん) (?<!が)ちな(?!み) 誤爆が見つかったら"|"使って地道に誤爆減らしてる 変数の後に数字つける方法がわからん (\d\d) (\d\d) → \1\212345 →NG (\d\d) (\d\d) → \1\2\x312345 →NG 先読み使えるの? 手元のエディタは変数の後数字が来るとバグる >>265 どういう環境なのか知らんので一般的な回答だけど 正規表現内の後方参照では、\1,\2の替わりに\k<1>,\k<2>(または\k'1', \k'2')と書ける $1,$2の場合は、${1},${2}と書ける(jscriptの場合は、$01,$02とする) 【例】 文字列: 112 正規表現:^(\d)\k<1>2 (またはキャプチャの括弧を使って ^(\d)(\1)2 としても良い) 部分文字列の参照:${1}2 (jscriptなら$012) で、12となる >>266 ありがと 使ってたのはmfindだからPerl 5互換 コマンドプロンプトで高度な正規表現使えるソフトだったので すいません質問です 言語…sakuraeditor ↓次のような文章を小さい順に並べたい、この部分 (パイプABC001) |ABC001 |の次は必ずアルファベットになります ・文章 (例) カメラ|ABC001 レンズ|BCD005 バッテリー|CDV003|不良あり … 「|」←この縦棒の入力の仕方教えて スマホでATOCでの入力方法が知りたいです 記号全部見たけど該当するのが見つけられませんでした 教えて下さい!! テキストデータにある電話番号部分を消したいのですがどのようにしたらいいでしょうか? 氏名 3桁の市内局番 ハイフン 4桁の番号 住所 というデータです。 テキストエディタを使って正規表現でハイフン付きの電話番号部分だけを消したいのです。 よろしくお願いします。 JavaScriptで作った。 空白は半角空白のことです。 「空白数字3つ空白-空白数字4つ空白」の部分を、1つの半角空白に置換する。 もし違っているなら、データの入出力を、正確に書いてくれ 入力 東京太郎 123 - 4567 東京都なんたら 大阪次郎 123 - 4567 大阪府なんたら 出力 東京太郎 東京都なんたら 大阪次郎 大阪府なんたら var str = "東京太郎 123 - 4567 東京都なんたら" + "\n" + "大阪次郎 123 - 4567 大阪府なんたら" var str2 = str.replace(/ \d{3} \- \d{4} /g, " "); console.log(str2); read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる