Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/03/15(水) 02:04:35.47ID:e01p03UP2017/04/30(日) 09:47:52.98ID:Dc5Ny+RF
正規表現で数字は、[0-9] または、\d
[0-9][0-9] なら、\d{2} と同じ
[0-9][0-9] なら、\d{2} と同じ
2017/04/30(日) 12:18:27.09ID:VPr4LyhY
丁寧なことが必ずしも良いとは限らない
質問するときは相手のことも考えて無駄を省くことが大事
質問を整理している間に自分で気付くこともある
質問するときは相手のことも考えて無駄を省くことが大事
質問を整理している間に自分で気付くこともある
2017/04/30(日) 15:52:39.90ID:3TcYedTF
2017/04/30(日) 20:35:41.23ID:IjVGB2EF
お前ら仲良くしろ
2017/05/01(月) 09:32:05.11ID:lsW6qson
長文NGしてれば見なくて済むのにわざわざ見てウゼェ言ってる奴って
マゾなの?やり方分かんないバカなの?ウゼェ言ってる俺カッケーな池沼?
マゾなの?やり方分かんないバカなの?ウゼェ言ってる俺カッケーな池沼?
2017/05/01(月) 11:29:31.86ID:hzoMRY/L
3行でまとめろ
91デフォルトの名無しさん
2017/05/01(月) 18:42:02.68ID:Ypd7EE7u ダ・ヴィンチ曰く「単純であることは究極の洗練だ」
今回の例にどれほど当てはまるかはわからんが、目指すのはそこだ。
今回の例にどれほど当てはまるかはわからんが、目指すのはそこだ。
2017/05/03(水) 15:46:12.05ID:/wkwyrKC
検索置換を教えて下さい。
行末の半角数字(桁数はまちまち)を行頭に移動したいです。
──────────────
■置換前■
abc1
東44
4-123
あいうえお02
──────────────
■置換後■
1abc
44東
1234-
02あいうえお
──────────────
使ってるエディタはgpadです。サクラエディタもあります。宜しくお願い致します。
行末の半角数字(桁数はまちまち)を行頭に移動したいです。
──────────────
■置換前■
abc1
東44
4-123
あいうえお02
──────────────
■置換後■
1abc
44東
1234-
02あいうえお
──────────────
使ってるエディタはgpadです。サクラエディタもあります。宜しくお願い致します。
2017/05/03(水) 16:08:53.89ID:KtRh/Jcn
>>92
gpadやサクラエディタは知らんけどJSならこんな感じ
replace(/(.*?)([0-9]*)¥n/g, "$2$1¥n")
最後の行にも改行がある前提
なければ入力の最後を示す$をOR条件として指定する
gpadやサクラエディタは知らんけどJSならこんな感じ
replace(/(.*?)([0-9]*)¥n/g, "$2$1¥n")
最後の行にも改行がある前提
なければ入力の最後を示す$をOR条件として指定する
2017/05/03(水) 17:09:36.61ID:/wkwyrKC
2017/05/03(水) 17:53:10.90ID:tt/7nJiL
2017/05/03(水) 18:09:12.54ID:/wkwyrKC
>>95
すごいできます!即レスありがとうございました!感謝です!
すごいできます!即レスありがとうございました!感謝です!
2017/05/04(木) 02:53:36.15ID:P+e+GY0n
●Regular Expressionの使用環境
Bash on Ubuntu on Windows での sed
●検索か置換か?
置換
●説明
[ と ] で括られた最初の文言以外を削除したい
●対象データ
aaa[bbb]ccc
[ddd]eee
fff[ggg]hhh[iii]jjj
kkk
●希望する結果
bbb
ddd
ggg
空行、もしくは、そのまま(上記だとkkk)
cat hoge.txt | sed -e 's/.*\(\[.*]\)/\1/g'
で行けそうな気がしたんですが、結果は
[bbb]ccc
[ddd]eee
[iii]jjj
kkk
この有様。誰か助けてください。
Bash on Ubuntu on Windows での sed
●検索か置換か?
置換
●説明
[ と ] で括られた最初の文言以外を削除したい
●対象データ
aaa[bbb]ccc
[ddd]eee
fff[ggg]hhh[iii]jjj
kkk
●希望する結果
bbb
ddd
ggg
空行、もしくは、そのまま(上記だとkkk)
cat hoge.txt | sed -e 's/.*\(\[.*]\)/\1/g'
で行けそうな気がしたんですが、結果は
[bbb]ccc
[ddd]eee
[iii]jjj
kkk
この有様。誰か助けてください。
2017/05/04(木) 03:21:35.65ID:1Mi5Sic1
>>97
s/\].*\|.*\[//g
s/\].*\|.*\[//g
2017/05/04(木) 03:22:48.12ID:7TNYL3q7
cat test.txt | sed -E 's/[^\[]*(\[[^\[]*\]).*/\1/g'
sedはnon-greedyサポートしてないので[^\[]*で
"["以外の文字にマッチするように指定する
sedはnon-greedyサポートしてないので[^\[]*で
"["以外の文字にマッチするように指定する
100デフォルトの名無しさん
2017/05/04(木) 10:29:51.92ID:P+e+GY0n101デフォルトの名無しさん
2017/05/05(金) 08:29:26.53ID:bm+deAdf 「Regular Expression」ってことは
RegularじゃないExpressionもあるのかな?
RegularじゃないExpressionもあるのかな?
102デフォルトの名無しさん
2017/05/05(金) 11:21:47.47ID:Ll1Ek2oh >>101
https://www.google.co.jp/search?q=irregular+expression&ie=UTF-8&oe=UTF-8&hl=ja-jp&client=safari
https://www.google.co.jp/search?q=irregular+expression&ie=UTF-8&oe=UTF-8&hl=ja-jp&client=safari
103デフォルトの名無しさん
2017/05/05(金) 13:41:26.64ID:Xc50Qjgk >「irregular expression」に関連するキーワード
>
>保守速報
ワロタ
>
>保守速報
ワロタ
104デフォルトの名無しさん
2017/05/07(日) 03:23:46.82ID:bf3ZF7DF >>101
正規表現で表される集合の標本それぞれが正規でない表現じゃないの
正規表現で表される集合の標本それぞれが正規でない表現じゃないの
105デフォルトの名無しさん
2017/05/07(日) 07:31:07.21ID:fOF53fEF そもそも誤訳だし
107デフォルトの名無しさん
2017/05/13(土) 23:19:52.64ID:4xoUv3bU 書き込めない?
108デフォルトの名無しさん
2017/05/14(日) 17:21:45.80ID:IUk17Lsy ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
検索
●説明
「ABC」の英大文字と小文字を区別せずに検索したいのですが
書き方はあるのでしょうか?
今は『abc|Abc|ABC』という正規表現を使っていますが
書くのがめんどうだし、aBcやabCにもヒットさせたいので
もっと簡潔な書き方があれば教えて下さい。
サクラエディタ
●検索か置換か?
検索
●説明
「ABC」の英大文字と小文字を区別せずに検索したいのですが
書き方はあるのでしょうか?
今は『abc|Abc|ABC』という正規表現を使っていますが
書くのがめんどうだし、aBcやabCにもヒットさせたいので
もっと簡潔な書き方があれば教えて下さい。
109デフォルトの名無しさん
2017/05/14(日) 18:29:13.61ID:YzpdvDlp110デフォルトの名無しさん
2017/05/14(日) 18:30:36.34ID:qjlEaygK そのものズバリのチェックボックスがあるのに釣りかメクラか
111デフォルトの名無しさん
2017/05/14(日) 20:19:12.83ID:IUk17Lsy112デフォルトの名無しさん
2017/05/27(土) 19:51:02.34ID:gdXMy//z ●Regular Expressionの使用環境
テキストエディタMeryでの強調文字列指定について質問です
http://www.haijin-boys.com/
Onigmo (Oniguruma-mod) (regular expression library) 5.15.0
https://github.com/k-takata/Onigmo
●検索か置換か?
検索?
●対象データ
"D:\PATH\HOGE",1,307,,0,"15/01/01 00:00:00","12/12/31 00:00:00",1,1,,,,"著者X",,,,,"タイトルA",,,2,,,,,1,1101,1101
"D:\PATH\FUGA",,,,,,"15/02/01 00:00:00",1,1,,,,,,,,,"名前B",4,,0
"E:\FOLDER\PIYO",20,197,91,0,"16/03/01 00:00:00","15/04/01 00:00:00",1,1,,,,"著者Y,Z","出版社",,,,"題名C"
●希望する結果
上のようなテキスト各行の最後に出現するダブルクォーテーション囲いの文字列
"タイトルA"
"名前B"
"題名C"
を取得して強調表示したいのですがどのような正規表現で記述すればよいのでしょうか?
あるいはダブルクォーテーションを含まない状態(タイトルA、名前B、題名C)でも差し支えありません
●説明?
・各行でカンマや "" 囲いの数はまちまちで、"" 囲いの中にカンマがある場合もあります
・"" 囲いの中のカンマを無視した場合、17番目のカンマの直後の "" 囲い部分です
・"タイトルA"、"名前B"、"題名C"のあとに続く文字列の長さ、形式は不定です
・対照データはマンガミーヤのブックリストです
よろしくお願いします
テキストエディタMeryでの強調文字列指定について質問です
http://www.haijin-boys.com/
Onigmo (Oniguruma-mod) (regular expression library) 5.15.0
https://github.com/k-takata/Onigmo
●検索か置換か?
検索?
●対象データ
"D:\PATH\HOGE",1,307,,0,"15/01/01 00:00:00","12/12/31 00:00:00",1,1,,,,"著者X",,,,,"タイトルA",,,2,,,,,1,1101,1101
"D:\PATH\FUGA",,,,,,"15/02/01 00:00:00",1,1,,,,,,,,,"名前B",4,,0
"E:\FOLDER\PIYO",20,197,91,0,"16/03/01 00:00:00","15/04/01 00:00:00",1,1,,,,"著者Y,Z","出版社",,,,"題名C"
●希望する結果
上のようなテキスト各行の最後に出現するダブルクォーテーション囲いの文字列
"タイトルA"
"名前B"
"題名C"
を取得して強調表示したいのですがどのような正規表現で記述すればよいのでしょうか?
あるいはダブルクォーテーションを含まない状態(タイトルA、名前B、題名C)でも差し支えありません
●説明?
・各行でカンマや "" 囲いの数はまちまちで、"" 囲いの中にカンマがある場合もあります
・"" 囲いの中のカンマを無視した場合、17番目のカンマの直後の "" 囲い部分です
・"タイトルA"、"名前B"、"題名C"のあとに続く文字列の長さ、形式は不定です
・対照データはマンガミーヤのブックリストです
よろしくお願いします
113デフォルトの名無しさん
2017/05/28(日) 06:04:53.01ID:PkY5eGnw "[^"]*"(?=[^"]*$)
(?<=")[^"]*(?="[^"]*$)
(?<=")[^"]*(?="[^"]*$)
114112
2017/05/28(日) 07:52:06.42ID:5aByZaI0 >>113
両方のパターンを教えていただきまして、ありがとうございます
"フォルダパス" の "[A-Z]:\\.+?" と "年/月/日 時:分:秒 "の "../.+?"
タイトルフィールドだけは全/半スペースで字下げして "[ ]+.+?" というパターンまでは作れましたが
字下げなしで強調表示できるようになり、一層見分けやすく、編集しやすくなりました
なぜこれらが最後の "タイトル" 部分にマッチするのか、まだ理解できてはいないのですが
読み解けるように頑張ってみます
両方のパターンを教えていただきまして、ありがとうございます
"フォルダパス" の "[A-Z]:\\.+?" と "年/月/日 時:分:秒 "の "../.+?"
タイトルフィールドだけは全/半スペースで字下げして "[ ]+.+?" というパターンまでは作れましたが
字下げなしで強調表示できるようになり、一層見分けやすく、編集しやすくなりました
なぜこれらが最後の "タイトル" 部分にマッチするのか、まだ理解できてはいないのですが
読み解けるように頑張ってみます
115112
2017/05/28(日) 11:31:39.10ID:5aByZaI0 先読みと後読みの使い方をなんとなく理解できるようになったかも?という感じで、自分で同じ表現をすぐに導き出せるかとなるとまだまだ難しそうです
調子にのって後読みで12番目のカンマの後ろの "著者" にマッチさせようとやってみましたが、繰り返し表現をふくむ後読みはダメだとか…
^".+?"([^,]*,){12}".+?" で「行頭から"著者"まで」はできても ^(?<=".+?"([^,]*,){12})".+?" では機能しないんですね
あれこれ弄り回して "タイトル" からカンマ5つ戻るかたちで先読みにして "[^"]*"(?=(,[^,]*){5}"[^"]*"(?=[^"]*$)) にしたら "著者" に
同様に {4} で "出版社" にマッチしました
おかげさまで色々と勉強になり、あらためてありがとうございました
調子にのって後読みで12番目のカンマの後ろの "著者" にマッチさせようとやってみましたが、繰り返し表現をふくむ後読みはダメだとか…
^".+?"([^,]*,){12}".+?" で「行頭から"著者"まで」はできても ^(?<=".+?"([^,]*,){12})".+?" では機能しないんですね
あれこれ弄り回して "タイトル" からカンマ5つ戻るかたちで先読みにして "[^"]*"(?=(,[^,]*){5}"[^"]*"(?=[^"]*$)) にしたら "著者" に
同様に {4} で "出版社" にマッチしました
おかげさまで色々と勉強になり、あらためてありがとうございました
116デフォルトの名無しさん
2017/05/28(日) 12:13:46.77ID:IsUf2Pl+ こんな古代呪文みたいなの、実際に仕事とかで使ってないとなかなか覚えないし
覚えてもすぐ忘れてしまうよなw
全てのパターンを記憶して空で完全詠唱できる人なんているんだろうか?
覚えてもすぐ忘れてしまうよなw
全てのパターンを記憶して空で完全詠唱できる人なんているんだろうか?
117デフォルトの名無しさん
2017/05/28(日) 13:15:52.74ID:QUomuFPF 暗唱できる必要性があるのか?
使うときにそういうのがあったなあって思う出すだけでいいだろ
あとは詳細を見て使えばいいだけ
使うときにそういうのがあったなあって思う出すだけでいいだろ
あとは詳細を見て使えばいいだけ
118デフォルトの名無しさん
2017/05/28(日) 13:26:02.06ID:35oU3ReV 仕事じゃなく趣味で覚えたけど
間違いなく覚えた方が便利
どっかに正規表現化してるだけでお金貰える仕事ないかな
間違いなく覚えた方が便利
どっかに正規表現化してるだけでお金貰える仕事ないかな
119デフォルトの名無しさん
2017/05/28(日) 15:27:00.29ID:dHcH/mRb >>116
わたしレベルになると詠唱破棄すら可能w
わたしレベルになると詠唱破棄すら可能w
120デフォルトの名無しさん
2017/05/28(日) 16:06:45.06ID:MqtJ47ff 言語環境ごとに使える使えない、エスケープ必要不必要を間違えたりする
サポートしてない環境の多い先読みとかは他の手段使っちゃったりするからなかなか使いこなせない
サポートしてない環境の多い先読みとかは他の手段使っちゃったりするからなかなか使いこなせない
121デフォルトの名無しさん
2017/05/28(日) 16:10:29.49ID:W53JMrzP $1 と \1 を間違えて泣きをみて以来、むしろ記憶しないようにしている……・
122デフォルトの名無しさん
2017/05/28(日) 16:18:27.70ID:mQ0E20+1 perlから初めるとカタワになるな
123デフォルトの名無しさん
2017/05/29(月) 08:14:03.69ID:XV2pt9yI えっ!?
124デフォルトの名無しさん
2017/05/29(月) 11:05:33.03ID:sPbSPx8D コマンドプロンプトのfindstrコマンドで使えるやつより貧弱な正規表現環境なんてないよね?
125デフォルトの名無しさん
2017/05/29(月) 11:21:53.73ID:sPbSPx8D126デフォルトの名無しさん
2017/05/29(月) 11:24:10.17ID:sPbSPx8D127デフォルトの名無しさん
2017/05/29(月) 21:58:39.79ID:YdL4iPz3 >>124
おれの彼女の胸
おれの彼女の胸
128デフォルトの名無しさん
2017/05/30(火) 13:16:32.07ID:V9BCWx6K >>118
とある地方の区画整理の際、住所表記が変わるので
住所を正規化するために正規表現と簡単なDB処理とを組み合わせた
単純な処理を行うだけの1日仕事で、
そこらのリーマンの3ヶ月分ぐらいお金になった事とかあったな
仕事柄色んな会社を訪問するけど
テキストの簡単な置換すらできない(まずテキスト置換という概念を知らない)人って
事務程度でしかパソコン使わない人にはめちゃくちゃ多いんだよね
そんなに人達に (.+)abcd\n みたいな初歩的な正規表現を教えると
物凄く驚かれる
見下すようだけど世の中そんなもん
とある地方の区画整理の際、住所表記が変わるので
住所を正規化するために正規表現と簡単なDB処理とを組み合わせた
単純な処理を行うだけの1日仕事で、
そこらのリーマンの3ヶ月分ぐらいお金になった事とかあったな
仕事柄色んな会社を訪問するけど
テキストの簡単な置換すらできない(まずテキスト置換という概念を知らない)人って
事務程度でしかパソコン使わない人にはめちゃくちゃ多いんだよね
そんなに人達に (.+)abcd\n みたいな初歩的な正規表現を教えると
物凄く驚かれる
見下すようだけど世の中そんなもん
129デフォルトの名無しさん
2017/05/30(火) 17:50:42.66ID:bhgaCfDA >>128
まぁハードル高いよね、低くないと言うべきか
知らなきゃ「正規表現」というチェックボックスがあっても、それが何をするものなのか
言葉から具体的イメージが全く湧かないし
ヘルプ見てはじめて何をするものなのかわかるという、といっても具体例が
無ければヘルプ見たところで「難しそう>便利そう」になりがち
一目で「難しそう<便利そう」になるならとっくに正規表現を使ってる層だろうし
ファイルの検索 や excel や word や メモ帳 、IE、Edge あたりに正規表現が
最初っからあれば話は違ってくるんだろうなと
Mac触った事ないからアレだけど、Macなら充実してるのかしら?
まぁハードル高いよね、低くないと言うべきか
知らなきゃ「正規表現」というチェックボックスがあっても、それが何をするものなのか
言葉から具体的イメージが全く湧かないし
ヘルプ見てはじめて何をするものなのかわかるという、といっても具体例が
無ければヘルプ見たところで「難しそう>便利そう」になりがち
一目で「難しそう<便利そう」になるならとっくに正規表現を使ってる層だろうし
ファイルの検索 や excel や word や メモ帳 、IE、Edge あたりに正規表現が
最初っからあれば話は違ってくるんだろうなと
Mac触った事ないからアレだけど、Macなら充実してるのかしら?
130デフォルトの名無しさん
2017/05/30(火) 22:14:32.37ID:wMq9WrJJ131デフォルトの名無しさん
2017/05/30(火) 22:28:36.41ID:RvF0nsOU132デフォルトの名無しさん
2017/05/31(水) 02:32:02.26ID:6BoaVWxP システム屋とかシステム会社って何のシステム?
133デフォルトの名無しさん
2017/05/31(水) 05:29:32.86ID:hSyYnyRA 使い捨てコードといったらPerlで書いてた世代は正規表現に抵抗無さそう
134デフォルトの名無しさん
2017/05/31(水) 05:30:03.72ID:sJHTybMt135デフォルトの名無しさん
2017/05/31(水) 08:06:38.95ID:rBoo2fCo 小さな会社だと他より少しPC関連に詳しいってだけでIT部長とか言われこき使われる
勿論そんな役職なんて無い
正規表現なんて言葉を発したらセクハラだの変態だの言われかねん
勿論そんな役職なんて無い
正規表現なんて言葉を発したらセクハラだの変態だの言われかねん
136デフォルトの名無しさん
2017/05/31(水) 11:16:23.49ID:u9qpXxTe137デフォルトの名無しさん
2017/05/31(水) 11:27:09.17ID:u9qpXxTe138デフォルトの名無しさん
2017/05/31(水) 11:46:52.88ID:AV1cHHAT CSV は、" などのエスケープについて、様々な方言があるから、正規表現では無理。
CSV の方言・規格を確定させてから、Ruby を使うべき
バグのほとんどが設計段階・仕様で生じる。
方言さえ確定していれば、バグらない
CSV の方言・規格を確定させてから、Ruby を使うべき
バグのほとんどが設計段階・仕様で生じる。
方言さえ確定していれば、バグらない
139デフォルトの名無しさん
2017/05/31(水) 11:53:36.36ID:L1juUrGR >>135
会社の忘年会では正規表現やりますって言ってパンツ脱ぐのか?
会社の忘年会では正規表現やりますって言ってパンツ脱ぐのか?
140デフォルトの名無しさん
2017/05/31(水) 12:15:57.63ID:u9qpXxTe >>138
仕事内容にもよるけどそんな事はない
なんせ世の中にはExcelのデータが糞ほどあるので
「Excelルールのcsvを正規表現で処理する+α」の仕事だけでも
たぶんそこらのリーマンよりは稼がせてもらってきたよ
日本の企業の大半は中小企業なわけだけど
ほんと信じられないほど無駄な事やってる会社がたくさんあるからね
こんな時間に2chなんてやってられるのも、そのお陰ですわ
仕事内容にもよるけどそんな事はない
なんせ世の中にはExcelのデータが糞ほどあるので
「Excelルールのcsvを正規表現で処理する+α」の仕事だけでも
たぶんそこらのリーマンよりは稼がせてもらってきたよ
日本の企業の大半は中小企業なわけだけど
ほんと信じられないほど無駄な事やってる会社がたくさんあるからね
こんな時間に2chなんてやってられるのも、そのお陰ですわ
141デフォルトの名無しさん
2017/05/31(水) 12:35:12.54ID:MQUo5X9j 万能な処理って得てして使いにくいしな
142デフォルトの名無しさん
2017/05/31(水) 12:44:32.50ID:gy6WrZsR143デフォルトの名無しさん
2017/05/31(水) 16:04:23.05ID:jFN45aLj144デフォルトの名無しさん
2017/05/31(水) 17:04:05.88ID:MQUo5X9j なぜrubyなのかよく分からん
多少正規表現エンジンの種類やバージョンの違いはあれど
正規表現はperlでもPHPでもJavaScriptでもPythonでも使えるし
rubyの正規表現なんて昔はコールバック処理するのがくそ面倒だった筈だが
多少正規表現エンジンの種類やバージョンの違いはあれど
正規表現はperlでもPHPでもJavaScriptでもPythonでも使えるし
rubyの正規表現なんて昔はコールバック処理するのがくそ面倒だった筈だが
145デフォルトの名無しさん
2017/05/31(水) 17:10:42.06ID:BtqSGsFQ 正規表現を使わずにrubyでやれと言いたいのでは
まあ確かにrubyは標準で簡単強力なcsv処理ができるけど
ruby以外でのcsvの処理の仕方を知らない知識不足な人の戯言にしか見えない
まあ確かにrubyは標準で簡単強力なcsv処理ができるけど
ruby以外でのcsvの処理の仕方を知らない知識不足な人の戯言にしか見えない
146デフォルトの名無しさん
2017/05/31(水) 17:29:50.80ID:nyiBm3r5 excelでも正規表現使えるけどな
147デフォルトの名無しさん
2017/05/31(水) 17:55:47.82ID:b1E/NNUq >>144
たぶんrubyのような言語と言いたかったのだと推察致しまする
たぶんrubyのような言語と言いたかったのだと推察致しまする
148デフォルトの名無しさん
2017/06/01(木) 04:08:09.64ID:+TrYOuL5 >>134
VB(今時は.NET)では入力チェックとかでよく使うからお前の偏見だよ。
VB(今時は.NET)では入力チェックとかでよく使うからお前の偏見だよ。
149デフォルトの名無しさん
2017/06/01(木) 04:08:53.15ID:+TrYOuL5 >>134
いい忘れたがサクラのマクロもよく使う。
いい忘れたがサクラのマクロもよく使う。
150デフォルトの名無しさん
2017/06/01(木) 05:13:28.59ID:gHUhkzd0151デフォルトの名無しさん
2017/06/01(木) 05:24:23.62ID:gHUhkzd0 >>149
お前個人の話かよ
お前個人の話かよ
152デフォルトの名無しさん
2017/06/01(木) 05:39:57.85ID:pPoV2n06 そもそもテキスト処理じゃないと使わんよ
使う使う言う奴はプログラミングの分野が偏ってるんじゃないか?
使う使う言う奴はプログラミングの分野が偏ってるんじゃないか?
153デフォルトの名無しさん
2017/06/01(木) 06:10:29.36ID:htPbJpjE エンドユーザーに近い分野で使うというより、開発者が使うものでしょ。SQLとかと同じ。
154デフォルトの名無しさん
2017/06/01(木) 08:16:36.86ID:YbQp1MN1155デフォルトの名無しさん
2017/06/01(木) 09:37:01.51ID:OU3iOJ/C >>148
これが偏見な
これが偏見な
156デフォルトの名無しさん
2017/06/01(木) 10:35:10.56ID:Fkhc5exB エマ中尉の盾になって死んだ人?
157デフォルトの名無しさん
2017/06/01(木) 12:16:30.24ID:o/dQD8LP >>154
特殊な例を一般化するのはよくない
特殊な例を一般化するのはよくない
158デフォルトの名無しさん
2017/06/01(木) 12:52:26.55ID:YbQp1MN1159デフォルトの名無しさん
2017/06/01(木) 12:55:42.58ID:uSxzswpP 検索じゃろ
grep然りsed然りエディタの検索然り
grep然りsed然りエディタの検索然り
160デフォルトの名無しさん
2017/06/01(木) 20:45:19.78ID:YbQp1MN1 >>159
その辺りもエンドユーザー(多くは開発者だと思うけど)に近いところじゃね?
その辺りもエンドユーザー(多くは開発者だと思うけど)に近いところじゃね?
161デフォルトの名無しさん
2017/06/01(木) 21:36:20.85ID:z/dTvzRJ 一般に正規表現自体をどこで使うかの話と違うんか?
プログラマがどこで使うかって文脈に限定してるのんか?
プログラマがどこで使うかって文脈に限定してるのんか?
162デフォルトの名無しさん
2017/06/02(金) 00:26:45.39ID:ixZw1vso perlがそうであったようにログ読んだり整形したりするときにも良く使う。システム管理者。
プログラマによっては無理に正規表現使わないで正規表現を引数に取らないcontainとか複数行で書くって人もいるんじゃないか。入力チェックもそんな考えるような正規表現の出番少ないような。
perlくらい言語に組み込まれてるならともかく。
プログラマによっては無理に正規表現使わないで正規表現を引数に取らないcontainとか複数行で書くって人もいるんじゃないか。入力チェックもそんな考えるような正規表現の出番少ないような。
perlくらい言語に組み込まれてるならともかく。
163デフォルトの名無しさん
2017/06/02(金) 01:15:51.17ID:ZbzhojDH >>156
ヘンケン艦長〜!
ヘンケン艦長〜!
164デフォルトの名無しさん
2017/06/02(金) 14:02:59.19ID:s9L+1vWi 正規表現、難しいですね…全然わかりません
お知恵をおかし下さい
例えば
test = "//abc"; // コメント "です"
という一行があった場合、後半の
// コメント "です"
にだけマッチする正規表現はどのように書いたらいいんでしょうか?
最初は
/(?!.*(\"|\'))\/\/(.*)/
こんなカンジで否定的先読みを利用していたのですが、
コメント部にも、 シングル及びダブルクォーテーションが入る可能性が出てきたので、
この書き方では ?! で否定しているためなのかマッチ出来ません。
何か良い書き方はありますでしょうか?
やりたい事は、PHPなどで、javascriptのソースから単一行のコメントを削除したいです。
よろしくお願い致します。
お知恵をおかし下さい
例えば
test = "//abc"; // コメント "です"
という一行があった場合、後半の
// コメント "です"
にだけマッチする正規表現はどのように書いたらいいんでしょうか?
最初は
/(?!.*(\"|\'))\/\/(.*)/
こんなカンジで否定的先読みを利用していたのですが、
コメント部にも、 シングル及びダブルクォーテーションが入る可能性が出てきたので、
この書き方では ?! で否定しているためなのかマッチ出来ません。
何か良い書き方はありますでしょうか?
やりたい事は、PHPなどで、javascriptのソースから単一行のコメントを削除したいです。
よろしくお願い致します。
165デフォルトの名無しさん
2017/06/02(金) 14:24:22.46ID:zHTMhHhl //((?!//).)*?$
166デフォルトの名無しさん
2017/06/02(金) 20:31:58.40ID:KFrvDlYH PHP は知らん
$perl -ne 'm%((?:\".*?\"|/(?!/)|[^/])*)(.*)% ; printf("<$1> <$2>\n");'
test = "//abc"; // コメント "です"
<test = "//abc"; > <// コメント "です">
// コメント "です"
<> <// コメント "です">
$
$perl -ne 'm%((?:\".*?\"|/(?!/)|[^/])*)(.*)% ; printf("<$1> <$2>\n");'
test = "//abc"; // コメント "です"
<test = "//abc"; > <// コメント "です">
// コメント "です"
<> <// コメント "です">
$
167デフォルトの名無しさん
2017/06/02(金) 21:10:46.42ID:yyLeCvfJ 末尾方向から、// を探して、もしあれば、その行を選択する。
^.*\/\/(ここに、2連続以上の、/ が存在しない)$
/// 例えば、3連続でも、コメント扱いするよな?
test = "///abc"; /// コメント "です"
シングルクォーテーションは、どうするんだ?
test = '///abc'; /// コメント "です"
^.*\/\/(ここに、2連続以上の、/ が存在しない)$
/// 例えば、3連続でも、コメント扱いするよな?
test = "///abc"; /// コメント "です"
シングルクォーテーションは、どうするんだ?
test = '///abc'; /// コメント "です"
168デフォルトの名無しさん
2017/06/02(金) 23:18:34.61ID:cODXM6Ca javascriptだから、シングルダブルは同等機能
"'"とか'"'とか有だし
"\""とかのエスケープもある
"//abc"は文字列だし、"\""//abc"はコメント
"'"とか'"'とか有だし
"\""とかのエスケープもある
"//abc"は文字列だし、"\""//abc"はコメント
169デフォルトの名無しさん
2017/06/03(土) 00:22:48.22ID:02UJhjHA みなさん、ありがとう御座います!
165さんの短いのでサクっと出来ました!
なるほど、末尾から検索をかけるとう考えなんですね。
本当に奥が深くて、使いこなすのは難しいです…
いろんなパターンを作りだし、自由にマッチ出来るよう精進します
>165-167さん、ありがとう御座いました!
165さんの短いのでサクっと出来ました!
なるほど、末尾から検索をかけるとう考えなんですね。
本当に奥が深くて、使いこなすのは難しいです…
いろんなパターンを作りだし、自由にマッチ出来るよう精進します
>165-167さん、ありがとう御座いました!
170デフォルトの名無しさん
2017/06/03(土) 00:23:37.51ID:02UJhjHA >168さん抜けちゃいました(汗
ありがとう御座いました!
ありがとう御座いました!
171165
2017/06/03(土) 01:16:11.91ID:janVI+9u >>169
ツッコミか逆ギレ待ちだったんだが…
165ではコメントが無くてコード中に//がある場合にそのコードの部分にマッチする
削除だとコードを削ってしまうよ
コード中に//が無い場合、またはコード中に//がある場合にその後ろにコメント行がある場合、限定
マトモなのは「JS コメント 正規表現」とかのワードでggr
ツッコミか逆ギレ待ちだったんだが…
165ではコメントが無くてコード中に//がある場合にそのコードの部分にマッチする
削除だとコードを削ってしまうよ
コード中に//が無い場合、またはコード中に//がある場合にその後ろにコメント行がある場合、限定
マトモなのは「JS コメント 正規表現」とかのワードでggr
172デフォルトの名無しさん
2017/06/03(土) 01:49:01.34ID:VDeCcObx s#((?:"(?:\\\\|\\"|[^"])*+"|'(?:\\\\|\\'|[^'])*+'|/(?!/)|[^/])*+)(.*)#<$1>\t<$2>#
173デフォルトの名無しさん
2017/06/03(土) 02:57:17.44ID:02UJhjHA >>171
え!?
限定的なテストで、思ったとおりの動きをしたので、おお!すげー!って思ってました…
実際のスクリプトには、まだ組み込んでないので気付きませんでした
他の方が書かれてた方法も試したり、ググってみますね
え!?
限定的なテストで、思ったとおりの動きをしたので、おお!すげー!って思ってました…
実際のスクリプトには、まだ組み込んでないので気付きませんでした
他の方が書かれてた方法も試したり、ググってみますね
174デフォルトの名無しさん
2017/06/03(土) 04:51:38.86ID:ZUxfcpWv 区切り記号 ; や閉じ括弧 } のあとにスペースかタブいくつかの後に来る // から行末をコメントと見なすのが簡単?
175デフォルトの名無しさん
2017/06/03(土) 12:52:21.44ID:7vig672V コメント化は、プログラムデバッグ中にも命令を無効にするために使うこともあるし、ことはそう簡単じゃないよ
//if(hoge=="http://hoge.net") {//コメント
//if(hoge=="http://hoge.net") {//コメント
176デフォルトの名無しさん
2017/06/03(土) 14:13:52.35ID:ep62Y9tf これは、無限の組み合わせがあるから、正規表現じゃ無理
AST変換とか、LLVMでコンパイル後の命令木をもらって、
コメント部分を削除するとかしないと、自力じゃ無理なレベル
AST変換とか、LLVMでコンパイル後の命令木をもらって、
コメント部分を削除するとかしないと、自力じゃ無理なレベル
177デフォルトの名無しさん
2017/06/03(土) 14:17:50.88ID:sCohk93m うむ
178デフォルトの名無しさん
2017/06/03(土) 14:32:23.81ID:7vig672V こんな場合もあるからね
/* 一行コメントを外す
//*/hoge="abc";
/* 一行コメントを外す
//*/hoge="abc";
179デフォルトの名無しさん
2017/06/03(土) 14:42:13.81ID:mWYP1opd 文脈自由言語の領域か
180デフォルトの名無しさん
2017/06/03(土) 16:26:56.85ID:kz1iKZuq テキストから
06/03(
を抽出する場合、どんな表現になりますか?
06/03(
を抽出する場合、どんな表現になりますか?
181デフォルトの名無しさん
2017/06/03(土) 16:32:48.16ID:7vig672V 何それ限定なの?
06\/03\(
(スラッシュにエスケープが要らない場合もあるけど付けといてダメなことはない)
06\/03\(
(スラッシュにエスケープが要らない場合もあるけど付けといてダメなことはない)
182デフォルトの名無しさん
2017/06/03(土) 20:14:19.78ID:4NkabvDw >>181
sedのsなんかは(をエスケープすると特別な意味を持つんじゃ
sedのsなんかは(をエスケープすると特別な意味を持つんじゃ
183デフォルトの名無しさん
2017/06/03(土) 22:49:00.44ID:yEDWU2+/ 正規表現って本当に色々なパターンでテストしないと抜けがあったりするから怖いね
184デフォルトの名無しさん
2017/06/03(土) 23:15:22.50ID:eiMrU4PF■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 俺と一緒に寝ろ
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 【朗報】スキースノーボードの季節がやってきた!
