[過去ログ]
Regular Expression(正規表現) Part12 (1001レス)
Regular Expression(正規表現) Part12 http://peace.5ch.net/test/read.cgi/tech/1387257592/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
750: デフォルトの名無しさん [sage] 2014/08/22(金) 16:28:42.52 ID:etaQV7Sr ファイル名検索指定:(\d+)-(\d+) ファイル名痴漢指定:\1\2 http://peace.5ch.net/test/read.cgi/tech/1387257592/750
751: デフォルトの名無しさん [sage] 2014/08/22(金) 16:29:16.66 ID:h4d7Hbqi 元に戻せない変換は怖いな http://peace.5ch.net/test/read.cgi/tech/1387257592/751
752: デフォルトの名無しさん [sage] 2014/08/22(金) 16:33:28.99 ID:DYgik7Qx E-Renameみないのならすぐ変更しないからいいけど http://peace.5ch.net/test/read.cgi/tech/1387257592/752
753: デフォルトの名無しさん [sage] 2014/08/22(金) 16:53:33.99 ID:kxOQVudb 中国とかが工作としてこういうソフトを配布してる可能性があるからこういうのは なるべく入れないようにしてる。平和ボケな日本人はなかなか警戒しないが。 http://peace.5ch.net/test/read.cgi/tech/1387257592/753
754: デフォルトの名無しさん [sage] 2014/08/22(金) 17:37:58.83 ID:aJ1/cCwf まさかとは思いますが http://peace.5ch.net/test/read.cgi/tech/1387257592/754
755: デフォルトの名無しさん [sage] 2014/08/22(金) 17:41:54.02 ID:U4ficUnI となりの旦那さんをレイプしていませんか? http://peace.5ch.net/test/read.cgi/tech/1387257592/755
756: デフォルトの名無しさん [2sage] 2014/08/22(金) 17:47:53.30 ID:gJAlPaQ5 >>753 おまえが桜チャンネルぼけ http://peace.5ch.net/test/read.cgi/tech/1387257592/756
757: デフォルトの名無しさん [sage] 2014/08/22(金) 19:03:19.51 ID:gD3ohATk >>749-750 お二方ともありがとうございました 無事変更できました 痴漢に吹いてしまったwwwwwww(わざとかなこの人・・・) http://peace.5ch.net/test/read.cgi/tech/1387257592/757
758: デフォルトの名無しさん [sage] 2014/08/22(金) 21:31:33.30 ID:UpTLQes7 1〜3桁の連続数字を一発で4桁にゼロパディングする正規表現は可能ですか? 秀丸ver8.22です。 ,(\d\d\d), → ,0\1, ,(\d\d), → ,00\1, ,(\d), → ,000\1, マクロのコードがシンプルになれば・・・ http://peace.5ch.net/test/read.cgi/tech/1387257592/758
759: デフォルトの名無しさん [sage] 2014/08/22(金) 21:51:38.81 ID:kxOQVudb 無理。 http://peace.5ch.net/test/read.cgi/tech/1387257592/759
760: デフォルトの名無しさん [sage] 2014/08/22(金) 22:29:24.84 ID:5QaimfAK やっぱそうですよね ^^; http://peace.5ch.net/test/read.cgi/tech/1387257592/760
761: デフォルトの名無しさん [sage] 2014/08/22(金) 23:37:33.02 ID:IPDXFe64 >>758 (\d{3}).*(\d{2}).*(\d{1}) \1\2\3 http://peace.5ch.net/test/read.cgi/tech/1387257592/761
762: デフォルトの名無しさん [sage] 2014/08/23(土) 00:08:09.60 ID:AEqqpBGU ??? http://peace.5ch.net/test/read.cgi/tech/1387257592/762
763: デフォルトの名無しさん [sage] 2014/08/23(土) 00:10:12.36 ID:6csT3QKU アナル http://peace.5ch.net/test/read.cgi/tech/1387257592/763
764: デフォルトの名無しさん [sage] 2014/08/23(土) 00:39:25.15 ID:DFqma1HT >>742 なにが不味いっけコレ >>758 1〜N桁のを2回に減らすことはできるけど、1回に減らすのは… http://peace.5ch.net/test/read.cgi/tech/1387257592/764
765: デフォルトの名無しさん [sage] 2014/08/23(土) 02:41:06.88 ID:qH2WQ946 >>761 質問ちゃんと読めよ http://peace.5ch.net/test/read.cgi/tech/1387257592/765
766: デフォルトの名無しさん [] 2014/08/23(土) 11:30:40.43 ID:C8qqacvC 空白で区切られた情報を正規表現で取得したいです "func A_arg1 A_arg2" このような文字列があるとします。 この関数funcが受け取る引数は必ず A_ から始まります /^func ((?:A_[A-z0-9]+ )+)/ このようにしてしまうとA_arg2のあとにスペースが無いため "A_arg1 "だけしかキャプチャすることができません "A_arg1 A_arg2"というようにキャプチャするにはどうすればいいのでしょうか http://peace.5ch.net/test/read.cgi/tech/1387257592/766
767: デフォルトの名無しさん [] 2014/08/23(土) 11:34:35.59 ID:C8qqacvC >>766 すみません 追加情報です "func A_arg1 A_arg2 # this is a comment" このような引数のあとに空白や文字が続くことも有ります http://peace.5ch.net/test/read.cgi/tech/1387257592/767
768: デフォルトの名無しさん [] 2014/08/23(土) 12:13:34.66 ID:C8qqacvC /^func ((?:A_[A-z0-9]+( |$)+)/ これでいけました お手数かけました http://peace.5ch.net/test/read.cgi/tech/1387257592/768
769: デフォルトの名無しさん [sage] 2014/08/23(土) 13:22:23.90 ID:fRu0y4Of それじゃキャプ出来ないはずだが・・ http://peace.5ch.net/test/read.cgi/tech/1387257592/769
770: デフォルトの名無しさん [sage] 2014/08/23(土) 14:45:51.77 ID:xQzzlftZ > 766 /^func(?:\b(?:A_[A-z0-9]+)\b)+/ http://peace.5ch.net/test/read.cgi/tech/1387257592/770
771: デフォルトの名無しさん [sage] 2014/08/23(土) 16:37:38.32 ID:xQzzlftZ まてぃがえた (?<=func )(?:(A_[A-z0-9]+) ?)+ http://peace.5ch.net/test/read.cgi/tech/1387257592/771
772: 758 [sage] 2014/08/24(日) 18:09:17.16 ID:/K2tiopt >>764 2回に分けてやる方法が分かったよ。参考情報ありがと。 1回目 ,(\d{1,3}), → ,目印000\1目印, 2回目 ,目印0*(\d{4})目印, → ,\1, http://peace.5ch.net/test/read.cgi/tech/1387257592/772
773: デフォルトの名無しさん [sage] 2014/08/24(日) 18:32:36.28 ID:7kdxEP/H マクロをシンプルにするために正規表現をゴチャゴチャにしたら本待つ転倒じゃね。 マクロのほうがシンプルで読みやすいものになるだろうに。 http://peace.5ch.net/test/read.cgi/tech/1387257592/773
774: デフォルトの名無しさん [sage] 2014/08/25(月) 00:46:27.47 ID:xXZcDf8b >>773 テキストエディタ上で桁揃えするときに>>772みたいな置換するのは定番だろ。 こんなん使い捨ての手打ち表現としてすら複雑とは言わないと思うんだが… http://peace.5ch.net/test/read.cgi/tech/1387257592/774
775: デフォルトの名無しさん [sage] 2014/08/25(月) 01:05:20.21 ID:MGBbV6rC そんな面倒なことするくらいなら表計算ソフト使ったほうがいい。 プログラミング出来る人ならコマンドラインからprintfで。 http://peace.5ch.net/test/read.cgi/tech/1387257592/775
776: デフォルトの名無しさん [sage] 2014/08/25(月) 01:20:36.22 ID:DzYgYr7E 正規表現の結果にprintfみたいな書式で置換できたらいいのにね http://peace.5ch.net/test/read.cgi/tech/1387257592/776
777: デフォルトの名無しさん [sage] 2014/08/25(月) 01:55:29.12 ID:xXZcDf8b >>775 表計算ソフトに取り込むのに正規表現で書式直したりする場合もあるんだが… つかこの程度の正規表現を複雑とか面倒とか思う奴がなんでこのスレにいるの? >>776 printfが便利すぎてstreamに移行できない…ってのは兎も角、 そういうこと考えてくとJavaScriptのreplaceみたいなの使いたくなる。 http://peace.5ch.net/test/read.cgi/tech/1387257592/777
778: デフォルトの名無しさん [sage] 2014/08/25(月) 02:43:00.49 ID:gEXAbfJD >>776 ちょっと頑張れば出来るよ http://peace.5ch.net/test/read.cgi/tech/1387257592/778
779: デフォルトの名無しさん [] 2014/08/25(月) 02:47:09.07 ID:uDmHN95M JavaScriptだとマッチ部分の再利用まんどいからな なぜわざわざ関数にせにゃあならんのか http://peace.5ch.net/test/read.cgi/tech/1387257592/779
780: デフォルトの名無しさん [sage] 2014/08/25(月) 02:50:20.81 ID:MGBbV6rC 表計算ソフトなら貼り付けて書式を変更するだけで出来るんだけどね。 馬鹿とハサミは使いよう。 http://peace.5ch.net/test/read.cgi/tech/1387257592/780
781: デフォルトの名無しさん [sage] 2014/08/25(月) 05:45:42.21 ID:NQvVGwkw >>780 お前がプログラマでないことはよくわかった。 http://peace.5ch.net/test/read.cgi/tech/1387257592/781
782: デフォルトの名無しさん [sage] 2014/08/25(月) 07:04:13.88 ID:f/anSDMw >>776 まともなエディタならできるよ http://peace.5ch.net/test/read.cgi/tech/1387257592/782
783: デフォルトの名無しさん [sage] 2014/08/25(月) 14:59:40.72 ID:LYmloza8 phpの文字置換で質問です 【目的】 文字列内の ab を a にする ただしabの後ろがcの場合を除く 例 ab123 → a123 、 abcde → abcde という条件を正規表現で記述するにはどのように書けばよいでしょうか? よろしくおねがいします http://peace.5ch.net/test/read.cgi/tech/1387257592/783
784: デフォルトの名無しさん [sage] 2014/08/25(月) 15:06:33.85 ID:mxntKFMv s/(?<=a)b(?!c)//g http://peace.5ch.net/test/read.cgi/tech/1387257592/784
785: デフォルトの名無しさん [sage] 2014/08/25(月) 15:31:58.77 ID:LYmloza8 >>784 echo preg_replace( "/(?<=a)b(?!c)/", "", "123abz123" ); // 123az123 echo preg_replace( "/(?<=a)b(?!c)/", "", "123abc123" ); // 123abc123 動作確認しました ありがとうございました http://peace.5ch.net/test/read.cgi/tech/1387257592/785
786: デフォルトの名無しさん [sage] 2014/08/25(月) 15:52:57.04 ID:qKDWfdSu 頭良いなぁ〜 (?!abc)ab と書いてしまう… http://peace.5ch.net/test/read.cgi/tech/1387257592/786
787: 783 [sage] 2014/08/25(月) 15:53:00.41 ID:LYmloza8 >>784 すいません 先頭の (?<=a) こちらはどういう意味なのでしょうか? http://peace.5ch.net/test/read.cgi/tech/1387257592/787
788: デフォルトの名無しさん [] 2014/08/25(月) 15:55:53.50 ID:l0tzbBCe 先読みとか後読みとかでは?しらないが。 http://peace.5ch.net/test/read.cgi/tech/1387257592/788
789: デフォルトの名無しさん [] 2014/08/25(月) 15:58:33.97 ID:l0tzbBCe 正規表現の先読み・後読みを極める! 柔軟性の高い正規表現を書こうとすると,避けて通れないのが先読み・後読みです. いままではとりあえず的な理解をしていたのですが,それだと説明できない正規表現に遭遇したので,説明できるまで理解を深めてみました. とりあえず的な理解 正規表現を使って間もない人が先読み・後読みを理解するための説明です. 肯定的先読み(?=pattern) 次の正規表現では直後にbarがあるfoo(barは含まない)に一致します. foo(?=bar) 否定的先読み(?!pattern) 次の正規表現では直後にbarがないfoo(barは含まない)に一致します. foo(?!bar) 肯定的後読み(?<=pattern) 次の正規表現では直前に barがあるfoo(barは含まない)に一致します. (?<=bar)foo 否定的後読み(?<!pattern) 次の正規表現では直前にbarがないfoo(barは含まない)に一致します. (?<!bar)foo 先読み・後読みはアンカー 上記程度の理解だと次の内容を説明できません. abcで始まらない任意の文字列を抽出したい場合,/^(?!abc).*/のような正規表現を記述します. http://d.hatena.ne.jp/a_bicky/20100530/1275195072 http://peace.5ch.net/test/read.cgi/tech/1387257592/789
790: デフォルトの名無しさん [sage] 2014/08/25(月) 15:59:33.70 ID:qKDWfdSu >>787 戻り読み aをポイントにして、その後に続く文字にヒットする(ポイントしたaは含まない) だから、bだけがヒットして、削除することによって目的が達成する http://peace.5ch.net/test/read.cgi/tech/1387257592/790
791: 783 [sage] 2014/08/25(月) 16:11:44.93 ID:LYmloza8 こういうものがあったんですね かっこいいです ありがとうございました http://peace.5ch.net/test/read.cgi/tech/1387257592/791
792: デフォルトの名無しさん [sage] 2014/08/25(月) 16:15:22.85 ID:qKDWfdSu 参ったなぁ…照れるなぁ… http://peace.5ch.net/test/read.cgi/tech/1387257592/792
793: デフォルトの名無しさん [sage] 2014/08/25(月) 23:13:51.84 ID:xXZcDf8b >>782 正規表現置換でただの番号指定参照ではない書式付き指定とか見たこと無いんだが具体例頼む。 http://peace.5ch.net/test/read.cgi/tech/1387257592/793
794: デフォルトの名無しさん [sage] 2014/08/26(火) 00:01:04.56 ID:AKSJinfO つまりそういうAPIのライブラリでも作れば人気者になれる? http://peace.5ch.net/test/read.cgi/tech/1387257592/794
795: デフォルトの名無しさん [sage] 2014/08/26(火) 08:06:56.38 ID:l0Y41UVi >>793 いやだから知らないんだろ?だったら見た事あるわけないじゃないか。 なぜもっと素直に聞けないw http://peace.5ch.net/test/read.cgi/tech/1387257592/795
796: 後読み撲滅委員会 [sage] 2014/08/26(火) 11:08:23.62 ID:WIt2FEUm >>788-789 後読み撲滅委員会が来ましたよ 後読みだとマッチ位置のアトを読むみたいな誤解を生むから嫌い >>790の戻り読みの方がマッチ位置から前に戻るというのが明確で好き http://peace.5ch.net/test/read.cgi/tech/1387257592/796
797: デフォルトの名無しさん [sage] 2014/08/26(火) 22:02:42.14 ID:mLMy21sd >>795 素直に「頼む」って書いてるのに答えられないのか…… 番号指定参照の事と間違えてて引けなくなっちゃった? >>796 後読みだと後方参照と似た印象受けるし、戻り読みの方が好き。 http://peace.5ch.net/test/read.cgi/tech/1387257592/797
798: デフォルトの名無しさん [sage] 2014/08/26(火) 22:54:27.10 ID:/YmoB5m1 >>793 782のいう「まともなエディタ」が何かわかんないけど、 とりあえずEmacsで\,( )使って中でformatでも呼べばできるんじゃね。 必要ならstring-to-numberあたりもあわせて。 http://peace.5ch.net/test/read.cgi/tech/1387257592/798
799: デフォルトの名無しさん [sage] 2014/08/26(火) 23:14:26.38 ID:AKSJinfO 任意のスクリプトを実行できるエディタなら同じことできそうだね http://peace.5ch.net/test/read.cgi/tech/1387257592/799
800: デフォルトの名無しさん [sage] 2014/08/26(火) 23:41:15.75 ID:jaIpu19W 子供の煽りは放置でいいよ。どうせ社会不適合者のクズだろうし。 http://peace.5ch.net/test/read.cgi/tech/1387257592/800
801: 前方参照撲滅委員会 [sage] 2014/08/26(火) 23:56:30.04 ID:WIt2FEUm >>797 > 後読みだと後方参照と似た印象受けるし、戻り読みの方が好き。 2chだと後方参照しか見ない気がするけど、 BackreferencesをMSは前方参照と略しちゃったりしてるんだよね どう機械翻訳したら前方参照になるのかと小一時間(ry http://msdn.microsoft.com/en-us/library/ksz2azbh(v=vs.90).aspx http://msdn.microsoft.com/ja-jp/library/ksz2azbh(v=vs.90).aspx http://peace.5ch.net/test/read.cgi/tech/1387257592/801
802: デフォルトの名無しさん [sage] 2014/08/27(水) 00:00:44.53 ID:ca9UWwTQ 前へ(back)、次へ(next) http://peace.5ch.net/test/read.cgi/tech/1387257592/802
803: デフォルトの名無しさん [sage] 2014/08/27(水) 01:08:17.24 ID:LUqBHmJ8 普段意識しないけど「前」って表現は紛らわしい 「前に進め」と「前(の位置)に戻れ」は両方「前」だけど逆の向き 移動体に対する前後と移動の経路に対する前後は同じじゃない 文字列も、文字列の「後ろ」に向かって検査位置が「前進」するし けど普通なら「前方」と書いたら移動体に対する「前」で、 検査位置(オートマトン)の進行方向(文字列の後ろ)を指す…よなぁ… >>798-799 それだと書式指定飛び越えて置換ハンドラ作ってる気もするが、 その辺のこと言ってたって事…かなぁ…?誤解を招く表現だな http://peace.5ch.net/test/read.cgi/tech/1387257592/803
804: デフォルトの名無しさん [sage] 2014/08/27(水) 01:13:24.89 ID:bQc+U8zB 良いコード書きたかったら日本語なんて忘れろ http://peace.5ch.net/test/read.cgi/tech/1387257592/804
805: デフォルトの名無しさん [sage] 2014/08/27(水) 14:55:26.81 ID:Gkyyi0oW >>803 これほんとそうだと思うわw 10年前、車の免許の卒検で「あの車の前に停まれ」っていうので前方だと思ったら手前だったらしく最後に怒られてイラッとしたわw http://peace.5ch.net/test/read.cgi/tech/1387257592/805
806: デフォルトの名無しさん [sage] 2014/08/27(水) 15:12:26.25 ID:sYB8gGv2 先読み=その文字列が先行していることを示す 戻り読み=その文字列の後に続くかを示す なんかやってることは、先読みではなく後ろ読みな感じで、戻り読みは続き読みな感じがする http://peace.5ch.net/test/read.cgi/tech/1387257592/806
807: デフォルトの名無しさん [sage] 2014/08/27(水) 15:19:54.26 ID:/vEUt9tC English is OK. http://peace.5ch.net/test/read.cgi/tech/1387257592/807
808: デフォルトの名無しさん [sage] 2014/08/27(水) 18:19:00.03 ID:Uo1g6O6r (eigo de ok) is an English variant of 日本語でおk. Just as "日本語でおk" conveys a request to comment in Japanese, ... http://peace.5ch.net/test/read.cgi/tech/1387257592/808
809: デフォルトの名無しさん [sage] 2014/08/27(水) 18:20:23.14 ID:nJZA/d8q >>807 not english it is. http://peace.5ch.net/test/read.cgi/tech/1387257592/809
810: デフォルトの名無しさん [sage] 2014/08/27(水) 18:20:26.00 ID:WVBb8eJH English is OKは English === OK を意味する http://peace.5ch.net/test/read.cgi/tech/1387257592/810
811: デフォルトの名無しさん [sage] 2014/08/27(水) 18:23:12.87 ID:nJZA/d8q ”日本語でオーケー” → ”Speak in English” http://peace.5ch.net/test/read.cgi/tech/1387257592/811
812: デフォルトの名無しさん [sage] 2014/08/27(水) 18:24:10.39 ID:nJZA/d8q × in English ○ in Japanese http://peace.5ch.net/test/read.cgi/tech/1387257592/812
813: デフォルトの名無しさん [sage] 2014/08/27(水) 18:27:33.64 ID:nJZA/d8q そもそも訳わからんムズい説明とか専門用語ちりばめ解説にたいして 「このやろう、英語ではなせよな」 ”hey, speak in English” と。 そういう英語圏での話法が輸入されただろ。 どこかのバカが 「日本語でオーケー」 とか言い出してな。 あほか、日本語だろ! てえめの国語力のなさに文句言え ってのが大半だけどな http://peace.5ch.net/test/read.cgi/tech/1387257592/813
814: デフォルトの名無しさん [sage] 2014/08/27(水) 19:06:55.40 ID:TYjPELAM >>806 先読み=戻り読みと勘違いしてない? http://peace.5ch.net/test/read.cgi/tech/1387257592/814
815: デフォルトの名無しさん [sage] 2014/08/28(木) 12:45:08.12 ID:pLtajWiU 前後というと文字の位置を連想しがちだけど時間軸(処理順序)の話なんだよな http://peace.5ch.net/test/read.cgi/tech/1387257592/815
816: デフォルトの名無しさん [sage] 2014/08/28(木) 18:21:59.22 ID:uZ9r61k2 >>815 時間「軸」だと、正負はあっても前後は無い気がするなぁ…原点は動かないし 文脈上の他の要素を介した間接的な前後になってしまいそうで怖いんだが 「時間的に前」「前に処理した」とか…普通に文字列の前後を指してしまわないか? 処理装置(カーソルでもオートマトンでもいい)の進行「方向」の前後で良いと思う http://peace.5ch.net/test/read.cgi/tech/1387257592/816
817: デフォルトの名無しさん [sage] 2014/08/28(木) 18:42:45.16 ID:tetCPUIB 時間の進行方向に対して「前」というと進行方向と逆の過去になり、「後」というと進行方向と同じ未来になる 「この前に行った場所に行こう」「この後に飲み屋に行こう」 移動の場合は「前」というと進行方向と同じ向きになり、「後」というと進行方向とは逆になる 「この道をまっすぐ前に進む」「びっくりして後ろに下がる」 文章の場合は読んでいく進行方向に対して、「前」というと進行方向の逆の既読位置で、「後」というと進行方向と同じの未読位置になる 書く場合でも「前」というと既に書かれた部分をしめし、「後」というとこれから書く部分のことになる 文章に対して前半・後半という表現もある これは時間のケースと同じである http://peace.5ch.net/test/read.cgi/tech/1387257592/817
818: デフォルトの名無しさん [sage] 2014/08/28(木) 19:18:48.65 ID:XxtALw5X >>816 前日とか、後日とか言わないか? http://peace.5ch.net/test/read.cgi/tech/1387257592/818
819: し [sage] 2014/08/28(木) 19:22:32.85 ID:XxtALw5X >>818 あるいは前後策とか http://peace.5ch.net/test/read.cgi/tech/1387257592/819
820: デフォルトの名無しさん [sage] 2014/08/28(木) 19:32:25.16 ID:uZ9r61k2 >>817 >「この前に行った場所に行こう」「この後に飲み屋に行こう」 こういうのって予定表上の前後っぽいニュアンスになっちゃうから、 これでホントに時間に対する前後の例になってるか悩むんだよね… 自分で書いといてアレだけど「前に処理した」も予定になりそうだし。 >「この道をまっすぐ前に進む」 「ここで前に戻る」は「前」なのに「戻って」しまうけど、どうするん? 「前方」と「方」をつけると文章でも(読み手の)進行方向になる気がするし、 >>803で出てるけど時間だの移動だので区分するんじゃなくて、 前後という表現が掛かる対象を見て区別したほうが良いと思う。 移動体に掛かるなら進行方向で良いけど、それ以外だと大抵逆方向になる。 http://peace.5ch.net/test/read.cgi/tech/1387257592/820
821: デフォルトの名無しさん [sage] 2014/08/28(木) 19:35:52.74 ID:u81Xrccg いつまでやってるんだよキモいなぁ http://peace.5ch.net/test/read.cgi/tech/1387257592/821
822: デフォルトの名無しさん [sage] 2014/08/28(木) 19:55:03.60 ID:Hg0+wwkG ムーンウォークはどっち向きに歩いてるん? http://peace.5ch.net/test/read.cgi/tech/1387257592/822
823: デフォルトの名無しさん [sage] 2014/08/28(木) 20:40:26.28 ID:9FDOfLGs >>820 >「ここで前に戻る」は「前」なのに「戻って」しまうけど、どうするん? 「ここで前に戻る」の「前」は時間経過の「前」だよ http://peace.5ch.net/test/read.cgi/tech/1387257592/823
824: デフォルトの名無しさん [sage] 2014/08/28(木) 21:26:17.96 ID:1RFDsZ4s d http://peace.5ch.net/test/read.cgi/tech/1387257592/824
825: デフォルトの名無しさん [sage] 2014/08/29(金) 01:11:03.79 ID:4xakm/Il 前がゲシュタルト崩壊してきた。 http://peace.5ch.net/test/read.cgi/tech/1387257592/825
826: デフォルトの名無しさん [sage] 2014/08/29(金) 05:02:43.37 ID:YWIzckej 後ろから前からどうぞ http://peace.5ch.net/test/read.cgi/tech/1387257592/826
827: デフォルトの名無しさん [] 2014/08/29(金) 15:32:57.02 ID:XeSPYyFB ↓ホモ3連装の岐阜 http://peace.5ch.net/test/read.cgi/tech/1387257592/827
828: デフォルトの名無しさん [sage] 2014/08/29(金) 17:09:34.09 ID:FliA9TBF お前初めてかここは、力抜けよ http://peace.5ch.net/test/read.cgi/tech/1387257592/828
829: デフォルトの名無しさん [sage] 2014/08/29(金) 18:17:53.55 ID:BbDu6wB2 岐阜県民に何の恨みがあるんだお前 http://peace.5ch.net/test/read.cgi/tech/1387257592/829
830: デフォルトの名無しさん [sage] 2014/08/29(金) 21:17:04.24 ID:ZQUCiV5V ルーターのログファイルからIPアドレスだけ取り出したいのですが、 さくらエディタにログファイルを張り付けて置換コマンドで IPアドレスのみ残して他の文字は全部除去出来ますか? 検索なら (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}) で出来たのですが、これを残して他の文字を削除するというのが出来ませんでした。 条件としては さくらエディタ(Win7) テキストファイル 各行に IPアドレスがいろいろ含まれている。 XXX.XXX.XXX.XXX つまりこんな感じ。 その前後には , 空白 タブ ( ) CRLF などがある。 http://peace.5ch.net/test/read.cgi/tech/1387257592/830
831: デフォルトの名無しさん [sage] 2014/08/29(金) 22:19:07.08 ID:NX9Ew2LD >>830 検索 ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) 置換 $1\n http://peace.5ch.net/test/read.cgi/tech/1387257592/831
832: デフォルトの名無しさん [sage] 2014/08/29(金) 22:28:03.84 ID:NX9Ew2LD あ、間違えた 検索 (?s-m).*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).* 置換 $1\n http://peace.5ch.net/test/read.cgi/tech/1387257592/832
833: デフォルトの名無しさん [sage] 2014/08/30(土) 00:37:58.37 ID:3Iv0NAQx サクラエディタは行をまたげないのでmオプションは効かなかったかと。 検索:\G.*?(((?<=\G|[^\d\.])(\d{1,3}\.){3}\d{1,3}(?=$|[^\d\.]))((?!\g<2>).)*|((?!\g<2>).)*$)(\r?\n?) 置換:,$2$6 区切り文字も消すと見づらいので,つけたけど、消すだけなら(\r?\n?)を外して$2に置換で良い。 $6カッコ悪いし、IPアドレス無いときのマッチが邪魔だわ…上手い人はどう書くんだろう? http://peace.5ch.net/test/read.cgi/tech/1387257592/833
834: デフォルトの名無しさん [sage] 2014/08/30(土) 00:45:05.53 ID:YmGD3eGR サクラエディタのあの仕様はマジで勘弁して欲しい 愚痴スマソ http://peace.5ch.net/test/read.cgi/tech/1387257592/834
835: デフォルトの名無しさん [sage] 2014/08/30(土) 00:56:11.63 ID:Gk/RrE5v さくらエディタは、mオプションがデフォルトでON http://peace.5ch.net/test/read.cgi/tech/1387257592/835
836: デフォルトの名無しさん [sage] 2014/08/30(土) 01:32:54.30 ID:3Iv0NAQx .*?が怖かったから修正、ついでに0〜255までの値にのみマッチするように修正 検索:((?!((?<=\G|[^\d\.])((1?\d?\d|2[1-4]\d|25[1-5])\.){3}\g<4>(?=$|[^\d\.]))).)*(\g<2>)?\g<1>*(?=$|\g<2>)(\r?\n?) 置換:<$5>$6 先読み等のアンカー集合内での捕獲式集合は番号指定参照などに制限があるけど、 部分式呼出しなら(当然だけど)自由に再利用できるんだねぇ…$1〜$4が先読みを捕獲してる辺含めてなんかキモい。 >>834 だね。お陰でWSH/JScriptのreplaceが大活躍だけど、鬼車拡張使いたい時はどうにもならん… >>835 けれど行ごとに処理するから殆ど意味がないっていう話。$とかはサクラエディタ自身が検索用の正規表現弄るらしいし。 http://peace.5ch.net/test/read.cgi/tech/1387257592/836
837: デフォルトの名無しさん [sage] 2014/08/30(土) 02:07:16.26 ID:6GRP07Vc 皆さんありがとうございました。 836さん方式で完璧に取り出すことが出来ました。 正規表現初心者の私には殆ど理解できない式です。よくこんな物凄い式が書けますね。 なお、私の提示した条件に IPアドレスが無い行もある って入れ忘れていました。 今回作ってもらった表現式ですと、この行は <> に変換されました。 もし簡単に変更できるなら、IPアドレスの無い行は除去する式に変更して頂けると嬉しいです。 (せっかく作ってもらって文句言うようで申し訳ありませんが。。。) http://peace.5ch.net/test/read.cgi/tech/1387257592/837
838: デフォルトの名無しさん [sage] 2014/08/30(土) 03:03:29.36 ID:3Iv0NAQx >>837 やっぱIPアドレス無いときのマッチは邪魔だよねぇ… 区切り文字を含んだ置換文を、IPアドレスの存在しない行の置換にも流用した弊害です。 置換文を$5にすればゴミは消えるが区切りも消えるし、$5$6とかだと空行が残ってしまう。 二度目の置換で<>を削除するのが一番きれいに置換できる…と思ったのでああなった。 元々存在する区切り文字を流用することは出来る。(\g<1>?をIPアドレスと一緒に捕獲して置換文を$5$6や$5にする) 検索:((?!((?<=\G|[^\d\.])((1?\d?\d|2[1-4]\d|25[1-5])\.){3}\g<4>(?=$|[^\d\.]))).)*(\g<2>\g<1>?)?\g<1>*(?=$|\g<2>)(\r?\n?) ただ、区切り文字の表記ゆれがそのまま出力に反映されて、文章中に存在するIPアドレスとかが哀しいことに 「8.8.8.8とはGoogleのDNSサービスです。0.0.0.0は無効なアドレスや特殊なアドレスを意味します」→「8.8.8.8と0.0.0.0は」 http://peace.5ch.net/test/read.cgi/tech/1387257592/838
839: デフォルトの名無しさん [sage] 2014/08/30(土) 20:38:00.83 ID:v0qXwKg4 dj http://peace.5ch.net/test/read.cgi/tech/1387257592/839
840: デフォルトの名無しさん [sage] 2014/08/31(日) 02:37:18.56 ID:IR2UIS8T あ、2[1-4]\d|25[1-5]じゃなくて2[0-4]\d|25[0-5]じゃないとだめじゃんコレ。誰か突っ込んでよ… http://peace.5ch.net/test/read.cgi/tech/1387257592/840
841: 馬鹿1号 [sage] 2014/09/01(月) 20:29:57.75 ID:63998s3t だいぶ前に、C#でWindows用に正規表現練習ツールを作って ソースとexeのアップロードを以下のアドレスに上げたのですが http://sourceforge.jp/projects/regexpress/ どなたか、使ってみて 改良点があれば教えて下さい。 最近、Androidアプリばかり作っているので ひさびさ、C#も触っとこうと思ってる次第です。 http://peace.5ch.net/test/read.cgi/tech/1387257592/841
842: デフォルトの名無しさん [sage] 2014/09/01(月) 20:41:46.51 ID:2GXB3w06 へぇ svn使わなくてzipでソース配布でもSouceForge.JPでプロジェクト作ってもいいんだな 知らなかったわ http://peace.5ch.net/test/read.cgi/tech/1387257592/842
843: デフォルトの名無しさん [sage] 2014/09/02(火) 00:19:19.88 ID:6ckoH3d5 >>841 Support Textをパクってください〜 Windows版とAndroid版が欲しい/// 正規表現を連続実行できるテキストエディタお願いしますー! http://peace.5ch.net/test/read.cgi/tech/1387257592/843
844: デフォルトの名無しさん [sage] 2014/09/02(火) 00:20:54.15 ID:LHXA0qlA web上で出来るからなぁ、web上でも凝った作りのものもあるけど>>512とかで十分。 それより正規表現は方言がいろいろあるからどの方言かくらいは書いといたほうがいいと思う。 http://peace.5ch.net/test/read.cgi/tech/1387257592/844
845: デフォルトの名無しさん [sage] 2014/09/02(火) 01:01:49.17 ID:1/i9nKxD >>843 SupportTextって1MBくらいのテキスト扱える? http://peace.5ch.net/test/read.cgi/tech/1387257592/845
846: デフォルトの名無しさん [sage] 2014/09/02(火) 14:54:10.87 ID:1Vq/ncad メアドとユーザー名とパスワードを メアド……(.+)@gmail.com ユーザー名……\1.+ パスワード…….+\1 って風に部分的に使い回すのってセキュリティ的にまずいかね http://peace.5ch.net/test/read.cgi/tech/1387257592/846
847: デフォルトの名無しさん [sage] 2014/09/02(火) 15:11:55.74 ID:O4BThnl4 質問する場所間違ってるぞ http://peace.5ch.net/test/read.cgi/tech/1387257592/847
848: デフォルトの名無しさん [sage] 2014/09/04(木) 00:48:56.54 ID:+sF4QUe9 数を数える箇所で洋数字をひい、ふう、みい、よう、いつ、むう、なな、やあ、ここ、とおと置換させたいのですが、どうしたら良いでしょうか。 時間や番号は通常のままです。 SAPI5読上げ用にVBScript.RegExpで使うことを考えています。 http://peace.5ch.net/test/read.cgi/tech/1387257592/848
849: デフォルトの名無しさん [sage] 2014/09/04(木) 00:54:14.13 ID:6btE19Xl 数を数える箇所、の定義を明示しろ あと、一回の正規表現で A ⇒ A' B ⇒ B' ... のように置換することは不可能 http://peace.5ch.net/test/read.cgi/tech/1387257592/849
850: デフォルトの名無しさん [sage] 2014/09/04(木) 01:52:14.88 ID:Ks0RyVTt 同じWSHでJScriptのString.replaceならreplaceTextに関数指定すれば正規表現の適用回数は一回で行けるかもね。 VBScriptだと複数回RegExp.Replace置換するかRegExp.Executeしてループ内で変更してくか…どっちにしても面倒。 http://peace.5ch.net/test/read.cgi/tech/1387257592/850
851: デフォルトの名無しさん [sage] 2014/09/04(木) 22:06:17.48 ID:+sF4QUe9 レスありがとうございました。 やはり結構メンドくさそうなのですね。 定義もまだちゃんと定まっていないので出直します。 http://peace.5ch.net/test/read.cgi/tech/1387257592/851
852: デフォルトの名無しさん [sage] 2014/09/04(木) 22:45:52.96 ID:U17zlyiG 正規表現を使わなくても出来るよね。正規表現が分からないなら別の方法でやればいいだけの話。 http://peace.5ch.net/test/read.cgi/tech/1387257592/852
853: デフォルトの名無しさん [sage] 2014/09/04(木) 22:51:55.75 ID:4HghpGpo むしろ、正規表現でしか出来ないことなんてない件 http://peace.5ch.net/test/read.cgi/tech/1387257592/853
854: デフォルトの名無しさん [sage] 2014/09/05(金) 01:48:08.19 ID:LrK9xOye 正規表現しか使えない状況ってのはたまにあるけど 最低限の処理以外は、出来れば遠慮したい http://peace.5ch.net/test/read.cgi/tech/1387257592/854
855: デフォルトの名無しさん [sage] 2014/09/05(金) 02:51:22.30 ID:wkXRWLH9 正規表現使わない方が速い場合が多いからね。 http://peace.5ch.net/test/read.cgi/tech/1387257592/855
856: デフォルトの名無しさん [sage] 2014/09/05(金) 02:55:07.92 ID:wDfAxYZ7 書いてる時はいいけど半年くらい後に読むと 何をしようとしているのかすぐには思い出せない http://peace.5ch.net/test/read.cgi/tech/1387257592/856
857: デフォルトの名無しさん [sage] 2014/09/05(金) 12:30:46.76 ID:K3KOceOQ なんとかtool使ってるからコメント付きで保存してる。保存してもまたいじるってことが滅多にないけどね。 http://peace.5ch.net/test/read.cgi/tech/1387257592/857
858: デフォルトの名無しさん [sage] 2014/09/06(土) 19:48:34.84 ID:Bwavr3lm >>841 適当な例題と回答の一例みたいなのが欲しい http://peace.5ch.net/test/read.cgi/tech/1387257592/858
859: デフォルトの名無しさん [sage] 2014/09/09(火) 03:50:37.54 ID:3/iFB8Vu 2chのVIPのIDかどうかを正規表現で調べたいのですが IDが0-9a-zA-Z+/の64個の文字の9桁で出来ています これを /^[a-zA-Z0-9\+\/]{9}?$/ で正規表現を作ってみたのですが IDに+が入った時にマッチしません +も[]にエスケープして入れているのに 何故なんでしょうか? PHPでやっています http://peace.5ch.net/test/read.cgi/tech/1387257592/859
860: デフォルトの名無しさん [sage] 2014/09/09(火) 06:39:00.85 ID:hQhjEIGx >>859 PHPぼ正規表現文法は知らないけど、 +や/をそれぞれ\x2Bとか\u002fとかのコードポイント指定にしても駄目? (+の問題以前に正規表現パターンの引用符/をバックスラッシュでエスケープできてるのかが疑問) http://peace.5ch.net/test/read.cgi/tech/1387257592/860
861: デフォルトの名無しさん [sage] 2014/09/09(火) 07:14:11.09 ID:9n77QlVw >>860 文字集合内では量指定子や正規表現リテラルのデリミタ文字はエスケープ省略できる事が多いけど駄目なんかね? http://peace.5ch.net/test/read.cgi/tech/1387257592/861
862: デフォルトの名無しさん [sage] 2014/09/09(火) 09:17:14.77 ID:rLIm4nxe >>859 再現する最小限のコードを書け。他のところが間違っているのだろう $ php -r 'print preg_match("!^[a-zA-Z0-9+/]{9}$!","12345678+");' 1 書けたら質問も不要になってそうだが報告は必要。 http://peace.5ch.net/test/read.cgi/tech/1387257592/862
863: デフォルトの名無しさん [sage] 2014/09/09(火) 10:35:54.78 ID:GI4rgDDA >>860 ダメでした >>862 if(isset($_GET['id'])) { $id = $_GET['id']; if(preg_match('/^[a-zA-Z0-9\+\/]{9}?$/', $id)){ echo "IDです<BR>"; }else{ echo "not ID<BR>"; exit(-1); } } が最小限のコードです。 と、書きつつ他の原因を調べてたところ GETからIDを取ってるところが怪しいようです。 $idを表示させたらちゃんとIDが表示されるのですが preg_matchではちゃんと機能してくれません。 文字列リテラルで直接ソースにIDを書き込んだら preg_matchがちゃんと機能してくれました。 正規表現とは別の問題っぽいので 質問は取り下げさせて頂きます。 みなさまありがとうございました。 http://peace.5ch.net/test/read.cgi/tech/1387257592/863
864: デフォルトの名無しさん [sage] 2014/09/09(火) 10:59:37.43 ID:rLIm4nxe >>863 +がエスケープされて%2bとかされてるんじゃないの。 http://peace.5ch.net/test/read.cgi/tech/1387257592/864
865: デフォルトの名無しさん [sage] 2014/09/09(火) 12:34:53.41 ID:7s/ClwS2 >>863 文字列のエスケープとかぶってるだけじゃねーの? http://php.net/manual/ja/regexp.reference.escape.php http://peace.5ch.net/test/read.cgi/tech/1387257592/865
866: デフォルトの名無しさん [sage] 2014/09/09(火) 12:41:58.06 ID:Yqht+GIw >>863 URLエンコードについてググレ http://peace.5ch.net/test/read.cgi/tech/1387257592/866
867: デフォルトの名無しさん [sage] 2014/09/09(火) 16:59:48.63 ID:9n77QlVw php…にかぎらないけど(特にWebアプリケーションでは)、文字列のエスケープに 十分注意しないと巨大なセキュリティホールこさえて死ぬからちゃんと勉強しとけよー http://peace.5ch.net/test/read.cgi/tech/1387257592/867
868: デフォルトの名無しさん [sage] 2014/09/09(火) 17:54:43.68 ID:3/omhs4l \が原因だと思います。どうしてそこで\するのか http://peace.5ch.net/test/read.cgi/tech/1387257592/868
869: デフォルトの名無しさん [] 2014/09/09(火) 17:58:13.12 ID:pzDyfk+k ぺちぱーは隔離板あるんだからこっちくんな http://peace.5ch.net/test/read.cgi/tech/1387257592/869
870: デフォルトの名無しさん [] 2014/09/09(火) 18:00:29.85 ID:+h+xKEPP エスケープはいるだろ。基本、しなくていい文字でやっても無視されるので、余分にしてもいい。 PHPの''と""の違いでは? 囲いを、""にしたらどうだ。 http://peace.5ch.net/test/read.cgi/tech/1387257592/870
871: デフォルトの名無しさん [] 2014/09/09(火) 18:04:16.57 ID:+h+xKEPP PHPにおけるシングルクォーテーションとダブルクォーテーションの違い - Qiita http://qiita.com/yaaamaaaguuu/items/60bbb4e36a1ef046a6a0 シングルクォーテーションとダブルクォーテーションの違いで詰まった。 http://qiita.com/suin/items/cbbbe8844fd734fa20e2 を参考にした、改行コードを統一するコード $tmp = preg_replace("/\r\n|\r|\n/",'\n', $hogehoge); $tmp = preg_replace("/\r\n|\r|\n/","\n", $hogehoge); どのように挙動が異なるかは上のコードと以下を続けて試してみれば良い。 クォーテーションを統一しないと、意図したとおりの挙動を示さない。 というのも、シングルかダブルかによって、\nを改行として扱うかが変わるからだ。 ダブルはシングルより多くの文字を、エスケープして扱う。 http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.double を見れば何がエスケープされるか分かる。 変数の展開だけがクォーテーションの違いではないという教訓です。 http://peace.5ch.net/test/read.cgi/tech/1387257592/871
872: デフォルトの名無しさん [sage] 2014/09/09(火) 18:56:01.09 ID:rLIm4nxe >>870 >>862がダブルクォート使ったのはコマンドラインだからで、基本的にはシングル使う。ダブルは改行くらいか。 http://peace.5ch.net/test/read.cgi/tech/1387257592/872
873: デフォルトの名無しさん [sage] 2014/09/10(水) 07:51:00.65 ID:T8BC/FY4 >>738 >>740 >>747 返事おそくなってすいません どうもありがとうございました http://peace.5ch.net/test/read.cgi/tech/1387257592/873
874: デフォルトの名無しさん [sage] 2014/09/10(水) 22:01:14.07 ID:TE4FFqo+ ●Regular Expressionの使用環境 Perl ●検索か置換か? 置換 ●説明 「"」で囲まれた文字列以外のスペースを置換したい ●対象データ a b c "d e f" g h "i j k" l m ●希望する結果 a,b,c,"d e f",g,h"i j k",l,m よろしくおねがいします http://peace.5ch.net/test/read.cgi/tech/1387257592/874
875: デフォルトの名無しさん [sage] 2014/09/10(水) 23:02:57.19 ID:F+zfATH5 >>874 http://ideone.com/KU133d http://peace.5ch.net/test/read.cgi/tech/1387257592/875
876: デフォルトの名無しさん [sage] 2014/09/10(水) 23:51:26.98 ID:ck0DKWEV " のエスケープは考えなくてもいいのか?ちなみにこれは1つの正規表現で置換可能。 http://peace.5ch.net/test/read.cgi/tech/1387257592/876
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 125 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s