- 1 名前:デフォルトの名無しさん [2013/12/17(火) 14:19:52.00 ]
- Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。 前スレ Regular Expression(正規表現) Part11 toro.2ch.net/test/read.cgi/tech/1362913813/ 天ぷら等2以降
- 45 名前:デフォルトの名無しさん [2013/12/19(木) 21:57:08.85 ]
- >>44
こういう正規表現って毎回書くの? それとも関数作って関数の中にこれ一行だけ書くの?
- 46 名前:デフォルトの名無しさん mailto:sage [2013/12/19(木) 22:04:16.92 ]
- >>45
どちらがわかりやすいかで考えれば 答えは自ずと出てくるだろ。
- 47 名前:デフォルトの名無しさん mailto:sage [2013/12/19(木) 22:13:26.50 ]
- ここってUnEditorの正規表現の質問もOK?
- 48 名前:デフォルトの名無しさん mailto:sage [2013/12/19(木) 22:18:35.54 ]
- >>45
「こういう」が何を指してるか知らんけど、今はサブルーチンにしてしまうのが一般的。 サブルーチン作ると重くなるとか言ってたマシンスペックの低い時代ならマシンスペックと相談だろうね。 今はマシンスペックがかなり高いから、余程のことがない限り可読性重視。 あと、保守性の問題もある。 例えば>>44の正規表現からftpを外そうと思ったときに、あちこちに同じ正規表現があったら全部変更していく必要がある。 サブルーチンにしておけば1箇所変更すればよい。
- 49 名前:デフォルトの名無しさん [2013/12/19(木) 22:50:21.72 ]
- >>47
調べたら鬼車じゃん いいんじゃね
- 50 名前:デフォルトの名無しさん [2013/12/19(木) 23:25:32.19 ]
- ●Regular Expressionの使用環境
Perl 5.10.1 ●検索か置換か? 置換 ●説明 CSSにおいて、任意のクラスの任意の項目を変更したい ●対象データ ・・・ここまで他のクラス・・・ .test{ background-color: #ffffff; color: #000000; padding: 0px; margin: 0px; } ・・・ここから他のクラス・・・ ●希望する結果 例えば、testクラスのpaddingを4pxにしたい ・・・ここまで他のクラス・・・ .test{ background-color: #ffffff; color: #000000; padding: 4px; margin: 0px; } ・・・ここから他のクラス・・・ (クラス内部でインデントのために全角スペースを使っていますが、実際の運用ではタブ1つ分です) (クラスによって項目の数が違います)
- 51 名前:デフォルトの名無しさん mailto:sage [2013/12/20(金) 03:44:23.37 ]
- ここは重複スレです。
本スレ誘導 正規表現 Part11 toro.2ch.net/test/read.cgi/tech/1363769640/
- 52 名前:デフォルトの名無しさん [2013/12/20(金) 03:47:57.61 ]
- s/(\.test\{[^}]*padding:\s*)[^;]+/$14px/g;
- 53 名前:デフォルトの名無しさん mailto:sage [2013/12/20(金) 03:52:58.58 ]
- >>51
チョンの本スレ宣伝はここにも来たか
- 54 名前:デフォルトの名無しさん mailto:sage [2013/12/20(金) 04:49:30.72 ]
- part10 1340383120.dat 2012/06/23(土) 01:38:40.22〜2013/03/12(火) 22:57:24.75
part11 1362913813.dat 2013/03/10(日) 20:10:13.34〜2013/12/19(木) 20:34:23.12 偽スレ 1363769640.dat 2013/03/20(水) 17:54:00.46〜 part11が立ってから10日遅れ part10が埋まってからでも8日遅れ もう重複とかいうレベルですらなく、ただの荒らしだな 何が嫌でこんな宣伝してるのか……part10終盤を再現したいとか? toro.2ch.net/test/read.cgi/tech/1363769640/102 102 名前:デフォルトの名無しさん[sage] 投稿日:2013/12/17(火) 18:44:06.65 重複重複うるさいから確認してみたら、 正規の次スレが立って1週間以上経ってからこの偽物スレが立ってる。 どう考えても確信犯。 このスレを立てたのは恐らく本物のキチガイ。
- 55 名前:デフォルトの名無しさん mailto:sage [2013/12/20(金) 07:02:29.39 ]
- >>54
スレタイを勝手に変えてしまったから、どちらとも言えないけどね。 なんとかスタンダードとやらで、こちらが正統でいいんじゃないの。
- 56 名前:デフォルトの名無しさん [2013/12/20(金) 16:49:34.58 ]
- 正規表現って環境依存のイメージだけど、いわゆる「正規表現」ってあるの?
例えばC言語でも、 コンパイラの独自拡張を除いたいわゆる「C言語」ってあるじゃん。 そういう意味でいわゆる「正規表現」ってあるの?
- 57 名前:デフォルトの名無しさん mailto:sage [2013/12/20(金) 18:55:07.78 ]
- >>56
POSIXとかPCREのこと? CもANSI C89とかいろいろあるでしょう。
- 58 名前:デフォルトの名無しさん [2013/12/20(金) 19:07:50.28 ]
- >>56
Posix正規表現だけでもSRE、BRE、EREと3種あるくらいで所謂とか本家とかは 聞いたことないですね。 C++11でEcmascriptの正規表現もサポートとしていることや、利用者数、使い やすさ等を鑑みてJSの正規表現を中心に考えてみてはどうでしょうか。 自分の製品に正規表現エンジンを組み込む場合は。
- 59 名前:デフォルトの名無しさん mailto:sage [2013/12/20(金) 21:05:18.16 ]
- >>52
短くていいな。 俺も昨日ちょっと考えてたけど、もうちょい長くなった。
- 60 名前:50 mailto:sage [2013/12/20(金) 22:57:20.64 ]
- >>52
ありがとうございます! もう少しでCSSを解析してハッシュの配列にしてからやるところでした!
- 61 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 02:56:45.92 ]
- >>55
part10終盤の様相からしたら仕方ない。 スレタイ変えた程度であの手の馬鹿が引っ込むってのも不自然だが、 自演だとしても質問スレ系みたいに変なルール追加されたわけでもなさげだし。
- 62 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 03:04:06.35 ]
- パーサとかって内部では正規表現使ってパースしてんのかね?
何のパーサかにもよるだろうけど、RSSのパーサとか
- 63 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 03:50:16.65 ]
- >>62
見てみりゃいいじゃん。
- 64 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 03:53:20.96 ]
- 正規表現も使っているが、
正規表現だけでは限界があるので 単語の判断ぐらいに使ってる。
- 65 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 04:00:03.52 ]
- >>62
RSSのパーサってか、XMLのパーサだな。
- 66 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 04:39:34.92 ]
- そもそも正規表現自体が形式言語理論畑の言葉・概念がパターンマッチに流用されたものだからなぁ…
正しい定義で言うといわゆる正規表現は正規表現と呼ぶべきではないとか言う事になりそうですらある 逆にいわゆる正規表現とは全く異なるBNFとかの方が元の定義で言う正規表現らしかったりすらする程 そしてXMLはExtended BNFで定義されてるから、Extended BNFを正規表現と呼ぶならXMLパーサ=正規表現処理エンジンという事に 真面目に実装の話に戻ると、何らかの正規表現言語で言語を定義してそれをパーサジェネレータに食わせてパーサ作ったりするはず ここで使う正規表現はいわゆる正規表現で無い事も多いが、正規表現を使っているといえば使っている 出力されたパーサには正規表現が含まれ・・・・・・ないんじゃないかなぁ・・・・・・
- 67 名前:デフォルトの名無しさん mailto:sage [2013/12/21(土) 11:16:20.61 ]
- JScriptのエンジンって何?
- 68 名前:デフォルトの名無しさん [2013/12/22(日) 00:37:07.32 ]
- 質問です
C言語のソースコードに以下の条件に従ってスペースを入れたいのですが正規表現でどう書けば良いでしょうか? 1. 関数のカッコの中では、カッコの前後、及びカンマの前後に半角スペースを1つ入れたい 2. 但し、関数の中で文字列が引数になっている場合、その文字列に含まれるカッコやカンマの前後には何も入れない 3. 但し、ソースコード全体では、既に希望通りの半角スペースの入っている部分と、まだ入っていない部分がある 鬼車5.9.2です よろしくお願いします
- 69 名前:デフォルトの名無しさん [2013/12/22(日) 01:05:58.47 ]
- >>66
正規表現は文字列の集合を表すもの。 BNFは文脈自由文法を表すもの。 従って、正規表現で表現できるものはBNFでも表現可能だが、逆は真でない。 例えば、XMLの文法を表現するのにBNFが使えるが、正規表現では無理。
- 70 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 01:12:21.33 ]
- BNFは正規表現ではないの?
- 71 名前:デフォルトの名無しさん [2013/12/22(日) 01:19:10.65 ]
- BNFが正規表現であると定義する世界ではORだけあれば全ての言語を記述できる。
可能なすべてのパターンをORでつなげばいいから。
- 72 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 01:21:57.64 ]
- >>69
あー、右正規文法か左正規文法を表現するのが正規表現で、 文脈自由文法は右正規文法と左正規文法を同時に含みうるのか。 ただどっちにしてもそこで言う正規表現ってこのスレで扱う正規表現じゃ無くてその元ネタの方だよね。
- 73 名前:デフォルトの名無しさん [2013/12/22(日) 01:25:47.38 ]
- 君は何が何でも自分が正しいと主張したい人のようだね。
- 74 名前:デフォルトの名無しさん [2013/12/22(日) 01:26:53.77 ]
- でも結局のところ、Ajaxとかで取得したRSSをJSで加工するときは正規表現使うよな
- 75 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 01:40:04.42 ]
- >>74
DOMで扱う場合は使わない
- 76 名前:デフォルトの名無しさん [2013/12/22(日) 01:48:18.97 ]
- >>67
JavaScriptの正規表現エンジンはブラウザ独自。 だからIEで挙動が違ったり、Chromeが正規表現のエンジンを高速化したりということがある。 何年か前からブラウザは動作速度合戦になって、各ブラウザ共色々テコ入れしてる。 JavaScriptとその中の正規表現エンジンもかなり動作速度に影響するから当然テコ入れ対象。
- 77 名前:デフォルトの名無しさん [2013/12/22(日) 01:51:07.17 ]
- EMCAで規格が決まっています。
- 78 名前:デフォルトの名無しさん [2013/12/22(日) 02:54:20.70 ]
- 規格とエンジンは別だろ
規格に基づいてエンジン作るわけだから
- 79 名前:デフォルトの名無しさん [2013/12/22(日) 02:57:41.75 ]
- Wikiって文法解析してHTML生成してるけど、あれは正規表現で解析してるの?
- 80 名前:デフォルトの名無しさん [2013/12/22(日) 03:06:17.95 ]
- 念のためにきくけど、正規表現で住所を切り分けるのって無理だよな
- 81 名前:デフォルトの名無しさん [2013/12/22(日) 03:20:59.29 ]
- >>80
要件による
- 82 名前:デフォルトの名無しさん [2013/12/22(日) 03:22:31.90 ]
- IEのJSの正規表現の挙動がおかしいのは昔話題になってなかったっけ。
- 83 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 05:25:17.33 ]
- >>77
ECMA?
- 84 名前:デフォルトの名無しさん [2013/12/22(日) 10:09:35.44 ]
- >>79
全てがそうとは限りませんが、俺が見た範囲ではそうでした。
- 85 名前:デフォルトの名無しさん [2013/12/22(日) 12:32:08.28 ]
- PHPです
HTMLのIMGタグから、ファイル名と、 もし幅か高さが指定されていればそれも抽出したいです <img src="test.jpg"> <img src="test2.gif" width="200"> <img src="test3.png" width="200" height="160">
- 86 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 12:47:55.74 ]
- imgタグの仕様が分からなきゃ何とも言えないだろ
widthはパーセント指定できるの?構文解析の仕様は?
- 87 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 12:56:13.97 ]
- >>85
HTMLパーサでパースしろ そしてここには二度と来るな
- 88 名前:デフォルトの名無しさん [2013/12/22(日) 13:00:48.21 ]
- >>68
鬼車知らんけど、 ([\(,])([.\s]*?)([,\)]) かな。
- 89 名前:デフォルトの名無しさん [2013/12/22(日) 13:25:48.13 ]
- UTF-8でマルチバイト文字にのみマッチさせる正規表現はありますか?
- 90 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 13:34:14.52 ]
- ASCIIの範囲以外ならマルチバイトだろ。
- 91 名前:デフォルトの名無しさん [2013/12/22(日) 13:44:18.71 ]
- >>90
数字だったら\dで表せるけどそういう簡単なのないですか?
- 92 名前:デフォルトの名無しさん [2013/12/22(日) 14:55:17.89 ]
- [^アスキー全文字]+
- 93 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 15:38:51.59 ]
- POSIX文字クラスでググレ
- 94 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 19:33:09.96 ]
- >>80
四日市市とかで切り分けに失敗する自信がある
- 95 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 20:53:52.69 ]
- 廿日市市と八日市市、他に何があったかな?
仮に[^:ascii:]{1,6}市?市としても、市名の次に市が付く町名が来たら厄介だな。 POSIX使ってみた([^:ascii:]) 知らない人は「鬼車 正規表現」でググればわかる。 WSHとかでは使えないみたいだけど。
- 96 名前:デフォルトの名無しさん [2013/12/22(日) 21:53:21.53 ]
- 俺らの脳は市町村をどうやって切り分けてんだろ
- 97 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 22:37:59.73 ]
- >>95
四日市には市場町という地名があるようだ…
- 98 名前:デフォルトの名無しさん [2013/12/22(日) 23:06:47.37 ]
- ワラタw
- 99 名前:デフォルトの名無しさん [2013/12/22(日) 23:10:22.38 ]
- 結局ブラウザごとにJSの正規表現エンジンって違うの?
- 100 名前:デフォルトの名無しさん mailto:sage [2013/12/22(日) 23:37:00.86 ]
- >>97
なりたちからして自然だと思うが
- 101 名前:デフォルトの名無しさん mailto:sage [2013/12/23(月) 01:00:16.43 ]
- >>80>>95
もう既存の市町村名から正規表現生成するスクリプト作ってしまったほうが良い気が
- 102 名前:デフォルトの名無しさん mailto:sage [2013/12/23(月) 07:58:36.38 ]
- >>101
既存の市町村名全部持って、普通にマッチングした方がいいだろ...
- 103 名前:デフォルトの名無しさん [2013/12/23(月) 14:36:10.76 ]
- これだけ注意すればよさそうだな
四日市市 野々市市 廿日市市
- 104 名前:デフォルトの名無しさん [2013/12/23(月) 14:39:25.15 ]
- ちなみに八日市市は現存しない
www.city.higashiomi.shiga.jp/0000000610.html 平成17年2月11日には、 1市4町(八日市市・永源寺町・五個荘町・愛東町・湖東町)が合併し「東近江市」が誕生しました。
- 105 名前:デフォルトの名無しさん mailto:sage [2013/12/23(月) 14:42:30.11 ]
- プログラマを救うために住所表記に対する正規表現の使用を禁止する法律が求められている
- 106 名前:デフォルトの名無しさん mailto:sage [2013/12/23(月) 15:44:28.03 ]
- 住所はいろいろあるからねー
www.addressmatch.jp/rule.html
- 107 名前:デフォルトの名無しさん [2013/12/23(月) 19:50:41.11 ]
- >>68
2番目の条件がきつい
- 108 名前:デフォルトの名無しさん [2013/12/23(月) 23:14:24.79 ]
- 引数になってる文字列のコンマを別のものに置き換えて、
それからやったらどうよ それでソースコードのコンマを処理し終わったらもとに戻す [[comma]]とか
- 109 名前:デフォルトの名無しさん [2013/12/23(月) 23:53:19.75 ]
- 文字列の中に[[comma]]があったらどうする気だ。
- 110 名前:デフォルトの名無しさん mailto:sage [2013/12/24(火) 04:03:10.05 ]
- >>102
大差なくね? ああまあ市町村名DBをそのまま食わせられるからメンテ楽ってのはあるか… しかし一度regexp.exec(str)すれば即結果が得られるってのもそれはそれで楽 >>104 古い住所入れる奴が居るから・・・ >>108-109 メタ文字決めて先にメタ文字のエスケープしろよ、定番だろ。
- 111 名前:デフォルトの名無しさん [2013/12/24(火) 15:37:26.19 ]
- クリスマス関連の文字列を見たくないからネットサーフィンの際に
クリスマス関連の文字列でマッチしてクリスマス関連の文字列を含むウェブページをフィルタリングしたいのですが どういう正規表現で書けばいいでしょうか
- 112 名前:デフォルトの名無しさん mailto:sage [2013/12/24(火) 17:47:45.62 ]
- >>111
s/クリスマス関連/あぼーん/g
- 113 名前:デフォルトの名無しさん mailto:sage [2013/12/24(火) 19:25:31.28 ]
- ブラウザの設定をアラビア語とかペルシャ語にしたらどうだい
- 114 名前:デフォルトの名無しさん [2013/12/25(水) 12:13:30.69 ]
- s/.*(クリスマス|X'mas).*/あぼーん/g
- 115 名前:デフォルトの名無しさん [2013/12/25(水) 13:17:37.81 ]
- Perl
痴漢 $1200.00 \24980000 3桁ごとに「,」を入れたい $1,200.00 \24,980,000
- 116 名前:デフォルトの名無しさん [2013/12/25(水) 18:08:29.45 ]
- s/(\d\d\d(\.|$))/,$1/
- 117 名前:デフォルトの名無しさん mailto:sage [2013/12/25(水) 19:07:10.42 ]
- このスレにいる奴はこれどれくらいできる?
regex.alf.nu/
- 118 名前:デフォルトの名無しさん mailto:sage [2013/12/25(水) 22:14:50.89 ]
- >>117
プログラミングの役に立たない無意味な正規表現を作る能力で何の能力を測るのかが不明。
- 119 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 11:54:11.09 ]
- 正規表現を使ったただの遊びで、
何か測るとか 考えすぎっつーか余裕なさすぎ
- 120 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 12:16:44.97 ]
- >>117
ちゃんとマッチする物作って、点数が低いとかよくわからん。 マッチさせないギリギリを狙うゴルフなんだろか。
- 121 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 13:58:48.86 ]
- >>116
それじゃダメだろ
- 122 名前:デフォルトの名無しさん [2013/12/26(木) 15:39:20.51 ]
- じゃあお前書いてみろよ
- 123 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 15:48:59.72 ]
- >>120
パターンの文字数が少ない方が点数が上がる ドット使いまくり
- 124 名前:デフォルトの名無しさん [2013/12/26(木) 16:07:49.11 ]
- Plain strings (205)
Anchors (204) Ranges (202) Backrefs (197) Abba (183) A man, a plan (165) 素数の逆転がうまくいかねー
- 125 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 18:48:08.56 ]
- >>117
これ解析して正規表現を生成するプログラムは書くことできる?
- 126 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 18:48:35.02 ]
- >>125
当たり前だろ
- 127 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 20:13:22.44 ]
- >>123
なるほど、fooとか入れてくのね。 ありがd。
- 128 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 06:30:50.86 ]
- >>126
Prime(0) を生成するプログラムお願いします。
- 129 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 08:52:28.55 ]
- Plain strings (207) foo
- 130 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 18:44:21.67 ]
- >>124
^(xx+?)\1+$ の逆だから素直に ^(?!(xx+)\1+$)
- 131 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 23:49:58.74 ]
- すいません。VBScriptで
抽出した文字列にダブりがあります。 例: AAA BBB AAA CCC BBB CCC これを AAA BBB CCC のように抽出し直すにはどうすればいいでしょうか?
- 132 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 00:43:17.44 ]
- >>131
cat text.txt | sort | uniq
- 133 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 06:02:29.57 ]
- >>132
重複を削れといっているようだが、整列し直せとは言っていない。
- 134 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 09:24:51.01 ]
- >>133
Unixの勉強しましょうね
- 135 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 11:41:43.23 ]
- >>131
正規表現スレだぞ 根本的に勘違いしてる 死んで良いよ
- 136 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 12:25:00.00 ]
- >>134
?
- 137 名前:デフォルトの名無しさん [2013/12/28(土) 12:31:59.03 ]
- >>133
cat text.txt | sort | uniq uniqの部分をしっかり見ろよ
- 138 名前:137 ようわからん mailto:sage [2013/12/28(土) 12:38:28.75 ]
- AAA AAA AAA AAA
BBB BBB BBB BBB AAA CCC CCC CCC CCC BBB BBB CCC CCC CCC この方法だとuniqしたく無い場合に良い。
- 139 名前:デフォルトの名無しさん [2013/12/28(土) 12:43:27.01 ]
- 整列が要件に入っていないのに勝手に整列させるのはまずいって言いたいんじゃないの?
するとsortが使えない、ゆえにuniqが使えないとなって破綻する。 UNIXのコマンドって微妙に使えないのが多くて、微妙に違うだけの同じ目的の コマンドが多くて困る。 解決案として要件の変更が必ず提示されるのも困る。 それでUNIXは廃れたんじゃないかな?
- 140 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 12:49:05.40 ]
- KISSの精神を体現したのがMac。
- 141 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 12:55:41.87 ]
- >>139
要件に入ってない範囲なら整列するもしないも自由なのが常識。
- 142 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 12:58:58.73 ]
- 有るものを押し付けるのがUNIX、お客様の要望するものを用意するのが
Windows。
- 143 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 13:39:07.55 ]
- /imsxadlup の /d /l /u の使い方教えて。英語読めないの。
perldoc.jp/docs/perl/5.14.1/perlre.pod#47l
- 144 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 13:46:20.25 ]
- >>139
それは使いこなせてないんだろ。 Unixのコマンドは90%の解決を目指してる。その方が使いやすい。 自分の要件に合わせた、それにしか使えないコマンドが欲しいならプログラムすればいい。
- 145 名前:デフォルトの名無しさん [2013/12/28(土) 14:11:57.43 ]
- UNIXのコマンドは微妙に使えないのが使いやすい。
使わなくて済むからだ。 〜ジャーゴンニュースより抜粋〜
|

|