正規表現道場 Part2
【正規表現道場の掟】 ・言語不問 ・質問も大歓迎。使用言語を書くのを忘れずに。 正規表現と関係ない話・質問は他スレへどうぞ。 前スレ 正規表現道場 http://kohada.2ch.net/test/read.cgi/php/1168450843/ 2ch .scに移転しました。 正規表現道場 Part2 http://nozomi.2ch .sc/test/read.cgi/php/1348048723/l50 ■ 2ch.netの問題点 ・ 2chscがNGワードになってるので正規表現をスレに貼るのに支障が出る。何より言論統制はイクナイ。 ・ 管理人が今後どう動くか予測が付かない。 自暴自棄になりIPや書き込み履歴を大公開して逃走する可能性すらある。会社IPの人は注意。 使用しているのはYahoo! Pipesのregexです http://d.hatena.ne.jp/dacs/20080422/1208868051 ○○/△△&#xd;[□□ という文字列から△△だけを抜き出したくて、色々試してみているのですがどうもうまくいきません ".*/" -> replace -> "" "\&#xd;.+" -> replace -> "" だと思うのですが、何か間違いがあるのでしょうか? ちなみに "[.+" -> replace -> "" も試してみましたがダメでした Yahoo! Pipesの仕様なんて知らんが 文字列の開始も終わりも指定してないということは .*/で一番最後の/までが対象として消える可能性はある ファイル検索ツールでパスを入力する時、「\」「/」を入れると候補が0になってしまいます d:\\abc\\123\\ のように入力しているのですが、間違っていますか? (sc>>212 ) >qr/\"((?:\\[\\\"]|.)*?)\"/ > これはよっぽど自信がないと書けない書き方だ。 今考えると弾たんは単に2文字否定の作り方を知らなかっただけだな・・。 知ってたらこんなあやふやなものを作ろうなんて思わないし。 早さに拘るのに早い正規表現の作り方を知らないというちょっと残念な弾たん。 他の正規表現を見ても正規表現自体のスキルは高くない。 なんでもこなすオールラウンダーだから薄く広くになるんだろうな。 しかしこの程度の正規表現スキルでcpanのモジュール作って大丈夫なんだろうか。 探せばバグが出てきそうな予感。 正規表現のスキル自体とモジュール作成能力には直接的な相関関係はないからなあ・・・ そういう指摘するだけでモノ作ったり貢献してなさそうなお前はもっと駄目な人間だから安心しろ。 弾はなんだかんだ色々作ってるし色々な方面に貢献してる。 指摘することも立派な貢献だと思いますよ。現に指摘によって処理時間が半分以下になってますし。 まだ連投規制が解除されないなう ## 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 のは書式間違ってたねすまん) (?<!が)ちな(?!み) 誤爆が見つかったら"|"使って地道に誤爆減らしてる read.cgi ver 07.4.6 2024/03/23 Walang Kapalit ★ | Donguri System Team 5ちゃんねる