Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part14
https://mevius.5ch.net/test/read.cgi/tech/1489511075/
次スレは>>980宜しく
天ぷら等>>2以降
探検
Regular Expression(正規表現) Part15
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/09/16(月) 22:25:11.87ID:enU8we0d178デフォルトの名無しさん
2020/04/11(土) 16:30:10.27ID:Ni1vKiQd >>177
仕様の分かるテストケースってのはテストコードのことね
正規表現は作る時に必ずマッチする例とマッチしない例を書いて確認するでしょ?
それを仕様の分かるテストコードにしてセットで扱えるようにしておくってこと
コードレビュー時も正規表現だけ見てレビューしても効果薄いから
テストコードとセットでレビューする
>でもそれって正規表現使っているか否かに関わらず本来なされているべきことだよね
これはそうでもないよ
複雑なSQLの場合は仕様の分かるテストコードを一式用意するのは結構難しくて
ある範囲を超えると手間に見合わないから仕様書とSQL自体のレビューだったり手動テストで補完する
正規表現は純粋関数として扱えるのでその辺の難しさがない
仕様の分かるテストケースってのはテストコードのことね
正規表現は作る時に必ずマッチする例とマッチしない例を書いて確認するでしょ?
それを仕様の分かるテストコードにしてセットで扱えるようにしておくってこと
コードレビュー時も正規表現だけ見てレビューしても効果薄いから
テストコードとセットでレビューする
>でもそれって正規表現使っているか否かに関わらず本来なされているべきことだよね
これはそうでもないよ
複雑なSQLの場合は仕様の分かるテストコードを一式用意するのは結構難しくて
ある範囲を超えると手間に見合わないから仕様書とSQL自体のレビューだったり手動テストで補完する
正規表現は純粋関数として扱えるのでその辺の難しさがない
179デフォルトの名無しさん
2020/04/14(火) 11:27:53.60ID:uSEs8eKP 足並み揃えないと不安で死んじゃう病
180デフォルトの名無しさん
2020/04/14(火) 11:37:16.46ID:ARaCq1kB 人っていついなくなるかわからないからね
事故だったり勝手な理由で辞めたり
事故だったり勝手な理由で辞めたり
181デフォルトの名無しさん
2020/04/15(水) 10:44:15.36ID:MMPwOLF/ ●Regular Expressionの使用環境
grep (GNU grep) 2.20
●検索か置換か?
検索
●説明
今日から、14日間(位)を抜き出したい。
●対象データ
(前にもたくさん)
2020-03-14
2020-03-14
2020-03-15
2020-03-15
(中略)
2020-04-14
2020-04-14
2020-04-15
2020-04-15
(後も続く)
●希望する結果
14日前から2020-04-15を抽出できる事を希望します。
元ファイルに存在しない日付(3月33日があったり・・)などは無く、書式も必ず対象データに記載のもので出力されます。
また、30の月、31の月なども考慮しないでOKです。(できる限りシンプルな書式でお示しください)
サンプルお示しいただけたら、あとはググりながら自分で調べます。
ググったのですが、サンプルになるいい感じのシンプルな書式が見当たらず
どうにもうまく正規表現を作れずにおります。何卒宜しくお願い致します。
grep (GNU grep) 2.20
●検索か置換か?
検索
●説明
今日から、14日間(位)を抜き出したい。
●対象データ
(前にもたくさん)
2020-03-14
2020-03-14
2020-03-15
2020-03-15
(中略)
2020-04-14
2020-04-14
2020-04-15
2020-04-15
(後も続く)
●希望する結果
14日前から2020-04-15を抽出できる事を希望します。
元ファイルに存在しない日付(3月33日があったり・・)などは無く、書式も必ず対象データに記載のもので出力されます。
また、30の月、31の月なども考慮しないでOKです。(できる限りシンプルな書式でお示しください)
サンプルお示しいただけたら、あとはググりながら自分で調べます。
ググったのですが、サンプルになるいい感じのシンプルな書式が見当たらず
どうにもうまく正規表現を作れずにおります。何卒宜しくお願い致します。
182デフォルトの名無しさん
2020/04/15(水) 11:13:15.42ID:ajU4Q4+G カレンダーは西向く侍があるから正規表現単独では無理では……
183デフォルトの名無しさん
2020/04/15(水) 11:16:23.86ID:oU4wEPk/184デフォルトの名無しさん
2020/04/15(水) 11:19:34.98ID:MMPwOLF/ >>182
大体でもできないでしょうか。
と書こうと思ったときに思いつきました。。。
実行速度に問題が出るかもしれませんが、
3月15日または、3月16日または、3月17日または・・・4月15日。
って力技でやってみます・・・。
もし、ほかにも「こういう方法があるよ」って素敵なアイデアお持ちのかた
いらっしゃいましたら、ぜひレスをください。宜しくお願い致します。
大体でもできないでしょうか。
と書こうと思ったときに思いつきました。。。
実行速度に問題が出るかもしれませんが、
3月15日または、3月16日または、3月17日または・・・4月15日。
って力技でやってみます・・・。
もし、ほかにも「こういう方法があるよ」って素敵なアイデアお持ちのかた
いらっしゃいましたら、ぜひレスをください。宜しくお願い致します。
185デフォルトの名無しさん
2020/04/15(水) 11:29:40.68ID:oU4wEPk/186デフォルトの名無しさん
2020/04/15(水) 11:31:48.22ID:MMPwOLF/187デフォルトの名無しさん
2020/04/15(水) 11:48:04.80ID:oU4wEPk/188デフォルトの名無しさん
2020/04/15(水) 11:49:07.49ID:MMPwOLF/ >>183
ありがとうございます。
scriptというのが大きなヒントになり解決に至りました。
結果的にはこれでできました。
cat 対象ログファイル | awk '"2020-04-01" <= $2 && $2 < "2020-04-02"'
性器表現ばっかりにとらわれてました・・
ありがとうございます。
ありがとうございます。
scriptというのが大きなヒントになり解決に至りました。
結果的にはこれでできました。
cat 対象ログファイル | awk '"2020-04-01" <= $2 && $2 < "2020-04-02"'
性器表現ばっかりにとらわれてました・・
ありがとうございます。
189デフォルトの名無しさん
2020/04/15(水) 13:19:12.50ID:Ut6Mn670 何を言いたいのかエスパーでもわからん
オーダーはもっと正確に
オーダーはもっと正確に
190デフォルトの名無しさん
2020/04/15(水) 16:37:41.08ID:h/7T7n1i >>181
ちょっとだけややこしい検索にはawkがおすすめ
ちょっとだけややこしい検索にはawkがおすすめ
191デフォルトの名無しさん
2020/04/15(水) 16:53:34.03ID:z6xNdPvI 性器表現って(i)みたいなのだろw
192デフォルトの名無しさん
2020/04/21(火) 11:40:37.33ID:3ZBp0+Pn ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
置き換え
●説明
pingの結果(成功)をtxtに収めたものから、
IPアドレスだけ抜き取りたい
●対象データ
Echo reply 1 from 192.168.0.1 time delay 99.999 ms
Echo reply 2 from 192.168.0.1 time delay 88.999 ms
Echo reply 1 from 192.168.0.2 time delay 88.999 ms
Echo reply 2 from 192.168.0.2 time delay 88.999 ms
以下同じように続く
●希望する結果
192.168.0.1
192.168.0.1
192.168.0.2
192.168.0.2
〇実際に得られた結果
2.168.0.1
2.168.0.1
2.168.0.2
2.168.0.2
よろしくお願いいたします。
サクラエディタ
●検索か置換か?
置き換え
●説明
pingの結果(成功)をtxtに収めたものから、
IPアドレスだけ抜き取りたい
●対象データ
Echo reply 1 from 192.168.0.1 time delay 99.999 ms
Echo reply 2 from 192.168.0.1 time delay 88.999 ms
Echo reply 1 from 192.168.0.2 time delay 88.999 ms
Echo reply 2 from 192.168.0.2 time delay 88.999 ms
以下同じように続く
●希望する結果
192.168.0.1
192.168.0.1
192.168.0.2
192.168.0.2
〇実際に得られた結果
2.168.0.1
2.168.0.1
2.168.0.2
2.168.0.2
よろしくお願いいたします。
193デフォルトの名無しさん
2020/04/21(火) 11:41:25.90ID:3ZBp0+Pn 〇使用した正規表現(置換)
.*((([0-9]{1,3}\.){3})[0-9]{1,3}).*
$1
が抜けてました
.*((([0-9]{1,3}\.){3})[0-9]{1,3}).*
$1
が抜けてました
194デフォルトの名無しさん
2020/04/21(火) 12:43:11.20ID:iVBBDkGx 今の奴を少し手直しして
.*\b(([0-9]{1,3}\.){3}[0-9]{1,3}).*
とか
.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*
必ずfrom〜timeに挟まれるなら
.*from ([\d.]*) time.*
とか
.*\b(([0-9]{1,3}\.){3}[0-9]{1,3}).*
とか
.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*
必ずfrom〜timeに挟まれるなら
.*from ([\d.]*) time.*
とか
195デフォルトの名無しさん
2020/04/21(火) 13:08:13.53ID:bjfyOojV196デフォルトの名無しさん
2020/04/21(火) 13:34:44.69ID:3ZBp0+Pn197デフォルトの名無しさん
2020/04/21(火) 22:38:03.26ID:alPdontK .* を [^0-9]* もしくは \D*
198デフォルトの名無しさん
2020/04/21(火) 23:03:33.07ID:J0u+GdjC 推奨はしないけど、元の奴で、.*に?を追加して
.*?((([0-9]{1,3}\.){3})[0-9]{1,3}).*
.*?((([0-9]{1,3}\.){3})[0-9]{1,3}).*
199デフォルトの名無しさん
2020/05/16(土) 15:22:19.43ID:hjibA7SH ランダムな文字列によるコピペ荒らしで
12文字中の文字が最大で6種類しかない
ようなときどうすればいいでしょうか?
(.)\1*([^\1])\2*([^\1\2])\3*([^\1\2\3])\4*([^\1\2\3\4])\5*(
[^\1\2\3\4\5])\6 (.)\1*([^\1])\2*([^\1\2])\3*([^\1\2\3])\4*([^\1\2\3\4])\5*(
[^\1\2\3\4\5])\6*[\1\2\3\4\5\6]{6,}
こんな風にすると新たな種類の文字がキャプチャされていくように思えますが
既に登場した文字が再び登場するとマッチしなくなります
12文字中の文字が最大で6種類しかない
ようなときどうすればいいでしょうか?
(.)\1*([^\1])\2*([^\1\2])\3*([^\1\2\3])\4*([^\1\2\3\4])\5*(
[^\1\2\3\4\5])\6 (.)\1*([^\1])\2*([^\1\2])\3*([^\1\2\3])\4*([^\1\2\3\4])\5*(
[^\1\2\3\4\5])\6*[\1\2\3\4\5\6]{6,}
こんな風にすると新たな種類の文字がキャプチャされていくように思えますが
既に登場した文字が再び登場するとマッチしなくなります
200デフォルトの名無しさん
2020/05/16(土) 15:33:21.77ID:hjibA7SH 例を挙げると
↓慮↓鸞↑↓↓→慮↑←←↑→↑鸞↑→←→艪慮慮↑鸞鸞慮慮艪艪鸞→→↑慮↓→↓↓↑
慮鸞鸞艪艪→慮鸞艪鸞鸞↑慮艪慮艪慮↑←慮↑↑慮↑←艪→←鸞↑↓↑↑↓艪↓鸞慮→→
→艪←艪←↓↓←艪←↑→←←←鸞↓↓艪↑鸞←鸞←↓慮鸞←慮←慮↓慮慮慮慮↓↑艪
こんな感じの荒らしです
文字は毎回ランダムで変わります
登場する文字の種類が少ないという点でマッチさせたいと思っています
↓慮↓鸞↑↓↓→慮↑←←↑→↑鸞↑→←→艪慮慮↑鸞鸞慮慮艪艪鸞→→↑慮↓→↓↓↑
慮鸞鸞艪艪→慮鸞艪鸞鸞↑慮艪慮艪慮↑←慮↑↑慮↑←艪→←鸞↑↓↑↑↓艪↓鸞慮→→
→艪←艪←↓↓←艪←↑→←←←鸞↓↓艪↑鸞←鸞←↓慮鸞←慮←慮↓慮慮慮慮↓↑艪
こんな感じの荒らしです
文字は毎回ランダムで変わります
登場する文字の種類が少ないという点でマッチさせたいと思っています
201デフォルトの名無しさん
2020/05/16(土) 15:34:13.39ID:C+uyEXd2 (.)\1*([^\1])[\1\2]*([^\1\2])[\1\2\3]*([^\1\2\3])[\1\2\3\4]*([^\1\2\3\4])[\1\2\3\4\5]*
こんな感じ?
こんな感じ?
202デフォルトの名無しさん
2020/05/16(土) 19:45:32.29ID:hjibA7SH >>201
試したらそれだとほぼ全ての文章にも当てはまるみたいです
試したらそれだとほぼ全ての文章にも当てはまるみたいです
203デフォルトの名無しさん
2020/05/16(土) 20:00:27.44ID:C+uyEXd2 ^(.)+(?!\1)(.)(?:\1|\2)*(?!\1|\2)(.)(?:\1|\2|\3)*(?!\1|\2|\3)(.)(?:\1|\2|\3|\4)*
文字クラス中で後方参照使えないなら否定先読みで代替
文字クラス中で後方参照使えないなら否定先読みで代替
204デフォルトの名無しさん
2020/05/16(土) 20:04:12.78ID:C+uyEXd2 訂正
試してなかった
^(.)\1*(?!\1)(.)(?:\1|\2)*(?!\1|\2)(.)(?:\1|\2|\3)*(?!\1|\2|\3)(.)(?:\1|\2|\3|\4)*
試してなかった
^(.)\1*(?!\1)(.)(?:\1|\2)*(?!\1|\2)(.)(?:\1|\2|\3)*(?!\1|\2|\3)(.)(?:\1|\2|\3|\4)*
205デフォルトの名無しさん
2020/05/16(土) 20:19:48.01ID:vPXPesfb 無理だと思ったけどなんかできたわ
6種類以下の文字だけで行の頭から20文字
(?m:^)(?=(.)\1*+(?>(.)(?>\1|\2)*+(?>(.)(?>\1|\2|\3)*+(?>(.)(?>\1|\2|\3|\4)*+(?>(.)(?>\1|\2|\3|\4|\5)*+(.)?+)?+)?+)?+)?+)(?>\1|\2|\3|\4|\5|\6){20}
6種類以下の文字だけで行の頭から20文字
(?m:^)(?=(.)\1*+(?>(.)(?>\1|\2)*+(?>(.)(?>\1|\2|\3)*+(?>(.)(?>\1|\2|\3|\4)*+(?>(.)(?>\1|\2|\3|\4|\5)*+(.)?+)?+)?+)?+)?+)(?>\1|\2|\3|\4|\5|\6){20}
206デフォルトの名無しさん
2020/05/16(土) 20:35:19.65ID:hjibA7SH207デフォルトの名無しさん
2020/05/16(土) 20:49:23.06ID:YcXGn5Zu 言ってる通りの条件でやると滅茶苦茶誤爆して使い物にならんと思う
例が7文字だし、ググって類似の荒らしが使っているものにマッチしつつ誤爆控え目にするように
110字以上のレスの最後まで7字以下というくらいの条件にしたらこんな感じか
^ *(?=.{110})([^<br> ])(?:[<br> ]|\1)*([^<br> ])(?:[<br> ]|\1|\2)*([^<br> ])(?:[<br> ]|\1|\2|\3)*([^<br> ])(?:[<br> ]|\1|\2|\3|\4)*
【改行】([^<br> ])(?:[<br> ]|\1|\2|\3|\4|\5)*([^<br> ])(?:[<br> ]|\1|\2|\3|\4|\5|\6)*([^<br> ])(?:[<br> ]|\1|\2|\3|\4|\5|\6|\7)*$
【改行】とその前の改行を削除
例が7文字だし、ググって類似の荒らしが使っているものにマッチしつつ誤爆控え目にするように
110字以上のレスの最後まで7字以下というくらいの条件にしたらこんな感じか
^ *(?=.{110})([^<br> ])(?:[<br> ]|\1)*([^<br> ])(?:[<br> ]|\1|\2)*([^<br> ])(?:[<br> ]|\1|\2|\3)*([^<br> ])(?:[<br> ]|\1|\2|\3|\4)*
【改行】([^<br> ])(?:[<br> ]|\1|\2|\3|\4|\5)*([^<br> ])(?:[<br> ]|\1|\2|\3|\4|\5|\6)*([^<br> ])(?:[<br> ]|\1|\2|\3|\4|\5|\6|\7)*$
【改行】とその前の改行を削除
208デフォルトの名無しさん
2020/05/16(土) 21:09:00.00ID:BiE2hTzx 別の判定要件にしないと誤爆頻発しそう...
例えば「特定コード範囲の文字が連続n回出現でNG」とかじゃダメなの?
例えば「特定コード範囲の文字が連続n回出現でNG」とかじゃダメなの?
209デフォルトの名無しさん
2020/05/16(土) 21:23:17.44ID:hjibA7SH >>208
確率的に連続しないケースが結構出ちゃいますよね
確率的に連続しないケースが結構出ちゃいますよね
210デフォルトの名無しさん
2020/05/17(日) 01:33:54.38ID:C/hIIgkx 文字→文字または文字パターン、でどうだろう
そのボットの仕様を把握してないし実際のレスも見たことないのでなんとも言えないけど、文字種の制約以外に傾向を見いだせないってこと?
そのボットの仕様を把握してないし実際のレスも見たことないのでなんとも言えないけど、文字種の制約以外に傾向を見いだせないってこと?
211デフォルトの名無しさん
2020/05/17(日) 03:28:48.68ID:EMK05c2V >>210
こんな感じ
東大医学部医学科卒業、3年連続国試不合格のルシファーさん、偏差値95.3を取った模試の成績表をTwitterのヘッダーにしてしまう
http://leia.5ch.net/test/read.cgi/poverty/1589560323/
電光掲示板的なAAによって正規表現NGを逃れようとしている
今のところ
(\S{0,10}\s){10,}
(?=(.)\1*+(?>(.)(?>\1|\2)*+(?>(.)(?>\1|\2|\3)*+(?>(.)(?>\1|\2|\3|\4)*+(?>(.)(?>\1|\2|\3|\4|\5)*+(?>(.)(?>\1|\2|\3|\4|\5|\6)*+(?>(.)(?>\1|\2|\3|\4|\5|\6|\7)*+(?>(.)(?>\1|\2|\3|\4|\5|\6|\7|\8)*+(.)?+)?+)?+)?+)?+)?+)?+)?+)(?>\1|\2|\3|\4|\5|\6|\7|\8){17,}
で完璧に対応出来てる
こんな感じ
東大医学部医学科卒業、3年連続国試不合格のルシファーさん、偏差値95.3を取った模試の成績表をTwitterのヘッダーにしてしまう
http://leia.5ch.net/test/read.cgi/poverty/1589560323/
電光掲示板的なAAによって正規表現NGを逃れようとしている
今のところ
(\S{0,10}\s){10,}
(?=(.)\1*+(?>(.)(?>\1|\2)*+(?>(.)(?>\1|\2|\3)*+(?>(.)(?>\1|\2|\3|\4)*+(?>(.)(?>\1|\2|\3|\4|\5)*+(?>(.)(?>\1|\2|\3|\4|\5|\6)*+(?>(.)(?>\1|\2|\3|\4|\5|\6|\7)*+(?>(.)(?>\1|\2|\3|\4|\5|\6|\7|\8)*+(.)?+)?+)?+)?+)?+)?+)?+)?+)(?>\1|\2|\3|\4|\5|\6|\7|\8){17,}
で完璧に対応出来てる
212デフォルトの名無しさん
2020/05/17(日) 03:45:05.05ID:EMK05c2V 17文字もあるのに文字種が8種以内って
自然言語としては有り得ないわけですよ
そのエントロピー的な性質をターゲットにしてる
つまり完全ランダムじゃなくて電光掲示板的に嫌がらせメッセージを目立たせたいという意図を持ってるから可能になる手法
自然言語としては有り得ないわけですよ
そのエントロピー的な性質をターゲットにしてる
つまり完全ランダムじゃなくて電光掲示板的に嫌がらせメッセージを目立たせたいという意図を持ってるから可能になる手法
213デフォルトの名無しさん
2020/05/17(日) 03:46:57.41ID:C/hIIgkx >>211
なるほどw
なるほどw
214デフォルトの名無しさん
2020/05/17(日) 04:00:56.20ID:EMK05c2V こうかはばつぐんだ!
必死にNG逃れのためのスクリプト書いたのに全て通用しなくて発狂して逃げたww
必死にNG逃れのためのスクリプト書いたのに全て通用しなくて発狂して逃げたww
215デフォルトの名無しさん
2020/05/17(日) 04:36:26.20ID:zN/y7CUr 結果として片棒担がされてた訳か
https://leia.5ch.net/test/read.cgi/poverty/1589560323/870
870 番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 2bde-sAUE) 2020/05/17(日) 00:30:59.00 ID:LtSh5oo60
再度書き込みなっちまったけど、レスすんなよ
グズ正規表現野郎。
お前が煽ったせいで、さらにサキオタアンチがめんどくさくなった。
皆、ひっそり、IDやワッチョイと、少しの正規表現でNGしてた。
それらができない5chブラウザとかあるのに。
自分だけ調子に乗るなよクズ。
https://leia.5ch.net/test/read.cgi/poverty/1589560323/870
870 番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 2bde-sAUE) 2020/05/17(日) 00:30:59.00 ID:LtSh5oo60
再度書き込みなっちまったけど、レスすんなよ
グズ正規表現野郎。
お前が煽ったせいで、さらにサキオタアンチがめんどくさくなった。
皆、ひっそり、IDやワッチョイと、少しの正規表現でNGしてた。
それらができない5chブラウザとかあるのに。
自分だけ調子に乗るなよクズ。
216デフォルトの名無しさん
2020/05/17(日) 04:41:56.29ID:EMK05c2V >>215
それ荒らし本人が正規表現で完封されるのが悔しくて書いたやつだぞ
それ荒らし本人が正規表現で完封されるのが悔しくて書いたやつだぞ
217デフォルトの名無しさん
2020/05/17(日) 04:45:15.72ID:zN/y7CUr そうなのか
でもはたから見てると一緒だと思うよ
荒らし構うのはただの荒らしだよ
でもはたから見てると一緒だと思うよ
荒らし構うのはただの荒らしだよ
218デフォルトの名無しさん
2020/05/17(日) 04:53:36.77ID:EMK05c2V >>217
この荒らしは誰からも無視されてるのに何年も続けてる奴だからな
自分がターゲットにされて遊ばれて悔しいという体験は初めてだろうな
放置すれば荒らしが消えると思うのは間違い
キチガイは何年でも休まずに荒らし続ける
しかも手動で
そのキチガイの世界を壊してあげる作戦
この荒らしは誰からも無視されてるのに何年も続けてる奴だからな
自分がターゲットにされて遊ばれて悔しいという体験は初めてだろうな
放置すれば荒らしが消えると思うのは間違い
キチガイは何年でも休まずに荒らし続ける
しかも手動で
そのキチガイの世界を壊してあげる作戦
219デフォルトの名無しさん
2020/05/17(日) 05:51:07.31ID:zN/y7CUr 自粛警察みたいな奴だな
正義とか妄信しない方が良いぞ
正義とか妄信しない方が良いぞ
220デフォルトの名無しさん
2020/05/17(日) 05:52:32.20ID:EMK05c2V アホを悔しがらせて頭の体操になるなんて最高やん
こんな快感なこと他にある?
こんな快感なこと他にある?
221デフォルトの名無しさん
2020/05/17(日) 13:46:59.90ID:2FMa8UuX 正規表現を自動生成するAIはまだ?
222デフォルトの名無しさん
2020/05/17(日) 18:37:04.48ID:EMK05c2V 機械学習で正規表現を獲得するみたいなの出来ないですかね
223デフォルトの名無しさん
2020/05/17(日) 20:33:27.11ID:MuJmPUno 他力本願+ノイズは一人前
224デフォルトの名無しさん
2020/05/29(金) 08:30:19.28ID:/k2a15rY *でも+でもどちらでもよいという場面では*にするのが慣例でしょうか?それとも文字通りどちらでもいいのかな?
225デフォルトの名無しさん
2020/05/29(金) 11:43:39.33ID://ihWgfL このスレに来る奴って論理的思考をする人達だと思ってたけど、
慣例とか持ち出すような奴も来るんだな
意味が有って違うSyntaxなんだから適切な方を使え
慣例とか持ち出すような奴も来るんだな
意味が有って違うSyntaxなんだから適切な方を使え
226デフォルトの名無しさん
2020/05/29(金) 12:20:15.31ID:KLwVXlC+ どっちでもいいってどういう場合だ
どっちかになるだろ
どっちかになるだろ
227224
2020/05/29(金) 13:19:30.03ID:YZO921+1 例えば対象が1回以上の繰り返しだとします
0回以上には1回以上が含まれているのだから、どちらかが適切であるという積極的な理由が見つかりません
0回以上には1回以上が含まれているのだから、どちらかが適切であるという積極的な理由が見つかりません
228デフォルトの名無しさん
2020/05/29(金) 13:22:19.49ID:KLwVXlC+ 一つも無くていいってのと一つは必ず無いといけないってのは両立する場面は無い
229デフォルトの名無しさん
2020/05/29(金) 13:27:35.99ID:zvuAHZcb 「1回以上」ならつべこべ言わずに"+"だな
「0回は外したい」という意味を含むのであれば
"*"は仕様から外れる
個人的には"*"はできるだけ使わない
「0回は外したい」という意味を含むのであれば
"*"は仕様から外れる
個人的には"*"はできるだけ使わない
230デフォルトの名無しさん
2020/05/29(金) 15:05:09.67ID:IKIHl4j2 1回以上であることが分かっているのであれば0回の可能性がないことを示しておけるというのが合理的理由だよ。
*でマッチさせられるとしても後からソース見て混乱するだけだ。慣例といえば慣例だが機能すればいいというものでもない。
*でマッチさせられるとしても後からソース見て混乱するだけだ。慣例といえば慣例だが機能すればいいというものでもない。
231デフォルトの名無しさん
2020/05/29(金) 19:24:39.89ID:ZvrYTh83 >>227
読む人(未来の自分含む)のことを考えれば、可能な限り対象を絞り込んだ方が(設計意図が読み取りやすくて)よい
読む人(未来の自分含む)のことを考えれば、可能な限り対象を絞り込んだ方が(設計意図が読み取りやすくて)よい
232デフォルトの名無しさん
2020/05/29(金) 21:22:17.43ID:VNOYZXTT A+とAA*の効率化の話かと思った
AA*の方が最初のAで最適化される分だけ速いとかなんとか
AA*の方が最初のAで最適化される分だけ速いとかなんとか
233デフォルトの名無しさん
2020/05/29(金) 21:49:09.90ID:dZOo8Hm0 >>232
オートマトンを組むので速度は変わらないと思うが
オートマトンを組むので速度は変わらないと思うが
234デフォルトの名無しさん
2020/06/18(木) 21:13:18.22ID:jAvldfC1 https://i.imgur.com/ngqWoOX.jpg
上を下としたいのですが、2回に分けることは可能ですが、1回でやれますでしょうか?スラッシュが含まれる場合、そこをエスケープしたいのです
scriptタグ貼ると怒られますので、画像です(´・ω・`)、、、
上を下としたいのですが、2回に分けることは可能ですが、1回でやれますでしょうか?スラッシュが含まれる場合、そこをエスケープしたいのです
scriptタグ貼ると怒られますので、画像です(´・ω・`)、、、
235デフォルトの名無しさん
2020/06/18(木) 22:17:30.24ID:3QD4/INi >>234
正規表現: (<([^>]+)>[^<]*<)(/\2>)
置換 : "$1\$3"
正規表現: (<([^>]+)>[^<]*<)(/\2>)
置換 : "$1\$3"
236デフォルトの名無しさん
2020/06/18(木) 22:21:10.54ID:3QD4/INi 環境によっては
置換: "$1\\$3"
としないとダメなこともあり
置換: "$1\\$3"
としないとダメなこともあり
237デフォルトの名無しさん
2020/06/18(木) 22:28:45.36ID:3QD4/INi238デフォルトの名無しさん
2020/06/18(木) 22:37:34.06ID:G7fdNfOT <スクリプト>(ここが変化)</スクリプト>
って感じでスクリプトとスクリプトの間が変化するだけじゃない?
って感じでスクリプトとスクリプトの間が変化するだけじゃない?
239デフォルトの名無しさん
2020/06/18(木) 22:42:36.83ID:L9lBZl+g 間があるのなら通常1行ではないだろう
240デフォルトの名無しさん
2020/06/18(木) 22:48:48.44ID:kZOKQ/+u <script>([^\b]*?)</script>
"<script>\1<\\/script>"
"<script>\1<\\/script>"
241デフォルトの名無しさん
2020/06/19(金) 02:59:23.82ID:yAdMpEG/ 厚生労働省がガイドラインを発表…「副業」公認の時代が来た?
https://www.iza.ne.jp/kiji/economy/news/200516/ecn20051620000005-n1.html
フリーランス向け報酬即日払いサービス『先払い』受付開始7ヶ月で申込件数1,000件突破
https://prtimes.jp/main/html/rd/p/000000026.000047439.html
副業プラットフォーム「Kasooku」が約1.9億円調達、マッチング件数は5000件突破
https://jp.techcrunch.com/2020/04/30/kasooku-fundraising/
副業がしやすくなった?リモートワークを実施してよかったと思うことTOP5
https://dime.jp/genre/914967/
ポストコロナ時代の人生に副業は欠かせない
https://www.gentosha.jp/article/15457/
副業が社員を強くする コロナ・ショックが加速する新しい雇用の形
https://business.nikkei.com/atcl/gen/19/00149/042300009/
4割以上が「副業意欲向上」「副業しやすくなった」と変化|
新型コロナウイルスの影響下における働き方の実態・意識調査
https://prtimes.jp/main/html/rd/p/000000009.000040832.html
https://www.iza.ne.jp/kiji/economy/news/200516/ecn20051620000005-n1.html
フリーランス向け報酬即日払いサービス『先払い』受付開始7ヶ月で申込件数1,000件突破
https://prtimes.jp/main/html/rd/p/000000026.000047439.html
副業プラットフォーム「Kasooku」が約1.9億円調達、マッチング件数は5000件突破
https://jp.techcrunch.com/2020/04/30/kasooku-fundraising/
副業がしやすくなった?リモートワークを実施してよかったと思うことTOP5
https://dime.jp/genre/914967/
ポストコロナ時代の人生に副業は欠かせない
https://www.gentosha.jp/article/15457/
副業が社員を強くする コロナ・ショックが加速する新しい雇用の形
https://business.nikkei.com/atcl/gen/19/00149/042300009/
4割以上が「副業意欲向上」「副業しやすくなった」と変化|
新型コロナウイルスの影響下における働き方の実態・意識調査
https://prtimes.jp/main/html/rd/p/000000009.000040832.html
242デフォルトの名無しさん
2020/06/19(金) 05:44:59.40ID:LA4wBl0H243デフォルトの名無しさん
2020/06/19(金) 07:43:33.01ID:b4DLgcmt244デフォルトの名無しさん
2020/06/19(金) 10:22:50.49ID:ecFmQJtB 鬼雲
(?<!")(<([^>\s]++).*?>[^\b]*?<)(/\2>)(?!")
"\1\\\3"
制限
ネストの回数分、全置換の繰り返しが必要
<div id=a><div id=b>test</div></div> こういうのも行けるが
id=aの開始タグとid=bの終了タグの組み合わせで置換され次にid=bの始、id=aの終で処理される
<div id=a>"abc"<div id=b>test</div>"def"</div> タグの外側直近に"があるものは否定(先|戻り)読みで"を見ているので無理
(?<!")(<([^>\s]++).*?>[^\b]*?<)(/\2>)(?!")
"\1\\\3"
制限
ネストの回数分、全置換の繰り返しが必要
<div id=a><div id=b>test</div></div> こういうのも行けるが
id=aの開始タグとid=bの終了タグの組み合わせで置換され次にid=bの始、id=aの終で処理される
<div id=a>"abc"<div id=b>test</div>"def"</div> タグの外側直近に"があるものは否定(先|戻り)読みで"を見ているので無理
245デフォルトの名無しさん
2020/06/19(金) 11:06:15.25ID:LA4wBl0H ●Regular Expressionの使用環境
mery2.6.7です
●検索か置換か?
置き換えしたいです
●説明
先頭と行頭に"を追加し、/をエスケープしたいです
●対象データ
https://ideone.com/mNblKp
>>243
了解です
直しました
複数回に分けてやるのが普通なんでしょうか?
mery2.6.7です
●検索か置換か?
置き換えしたいです
●説明
先頭と行頭に"を追加し、/をエスケープしたいです
●対象データ
https://ideone.com/mNblKp
>>243
了解です
直しました
複数回に分けてやるのが普通なんでしょうか?
246デフォルトの名無しさん
2020/06/19(金) 11:47:09.20ID:x+g7YIVM >>245
これダブルクォーテーションもエスケープしなきゃいけないんじゃないの?
これダブルクォーテーションもエスケープしなきゃいけないんじゃないの?
247デフォルトの名無しさん
2020/06/19(金) 12:02:33.17ID:LA4wBl0H >>246
すみません、勘違いしていました
エスケープ対象は"で、/はエスケープ対象ではないです。
vscodeのスニペットに登録する際に、"をエスケープしないといけないんです
これ、なにげに面倒ですね
すみません、勘違いしていました
エスケープ対象は"で、/はエスケープ対象ではないです。
vscodeのスニペットに登録する際に、"をエスケープしないといけないんです
これ、なにげに面倒ですね
248デフォルトの名無しさん
2020/06/19(金) 14:19:20.57ID:a2rlVyD0 >>247
HTMLが一般的ではないんだけど
通常はタグと閉じタグとが別の行になることが多いし
あるいは全てが一行というものもあるんだけど
こんな特殊なものにだけ対応でいいのか?
また各タグ毎に""だとダメなのか?
こうすれば行が違ってても大丈夫となるけど
【例】 <h1>h1</h1> → "<h1>"h1"</h1>"
HTMLが一般的ではないんだけど
通常はタグと閉じタグとが別の行になることが多いし
あるいは全てが一行というものもあるんだけど
こんな特殊なものにだけ対応でいいのか?
また各タグ毎に""だとダメなのか?
こうすれば行が違ってても大丈夫となるけど
【例】 <h1>h1</h1> → "<h1>"h1"</h1>"
249デフォルトの名無しさん
2020/06/19(金) 16:14:22.39ID:/6wBUF7o 自分macなのでmery使えないの試せない
javascriptのマクロが使えるみたいじゃん
正規表現だけだと厳しいかも
var code =`<!DOCTYPE html> 〜省略〜 </html>`
var code = code.replace(/(<.*?>)\n/g, '"$1"\n').replace(/\//g, '\\\/')
console.log(code)
javascriptの置き換え部分だけ書くと上のでいけるはず
meryのマクロの体裁に整えればこれでいけると思う
環境によって\はバックスラッシュだし$もバックスラッシュです
javascriptのマクロが使えるみたいじゃん
正規表現だけだと厳しいかも
var code =`<!DOCTYPE html> 〜省略〜 </html>`
var code = code.replace(/(<.*?>)\n/g, '"$1"\n').replace(/\//g, '\\\/')
console.log(code)
javascriptの置き換え部分だけ書くと上のでいけるはず
meryのマクロの体裁に整えればこれでいけると思う
環境によって\はバックスラッシュだし$もバックスラッシュです
250デフォルトの名無しさん
2020/06/19(金) 16:33:24.58ID:x+g7YIVM var2回もいらんし。
¥nは$にしないとそのスクリプト自体動作失敗してるでしょ。
¥nは$にしないとそのスクリプト自体動作失敗してるでしょ。
251デフォルトの名無しさん
2020/06/19(金) 16:45:53.57ID:/6wBUF7o >¥nは$にしないと
へえそうなんだ
macだとそのままいけるんだよね
var 2回いらねはさすがに難癖だね
へえそうなんだ
macだとそのままいけるんだよね
var 2回いらねはさすがに難癖だね
252デフォルトの名無しさん
2020/06/19(金) 16:49:07.22ID:LA4wBl0H >>248
vscodeのスニペット登録はそういうルールのようです
やはり複数回に分けるのが利口でしょうか
プログラムだって何回かに処理を分けますもんね
必須ではないですが、知識として知りたいなあと思った次第です
vscodeのスニペット登録はそういうルールのようです
やはり複数回に分けるのが利口でしょうか
プログラムだって何回かに処理を分けますもんね
必須ではないですが、知識として知りたいなあと思った次第です
253デフォルトの名無しさん
2020/06/19(金) 17:06:56.57ID:x+g7YIVM254デフォルトの名無しさん
2020/06/19(金) 18:05:26.45ID:LA4wBl0H >>249
自分はpythonでやってみますです
自分はpythonでやってみますです
255デフォルトの名無しさん
2020/06/19(金) 18:07:51.43ID:a2rlVyD0 ひょっとするけど
タグ関係なく単に各行を""で括るってだけなんじゃ?
タグ関係なく単に各行を""で括るってだけなんじゃ?
256デフォルトの名無しさん
2020/06/19(金) 18:24:29.90ID:a2rlVyD0 スニペット登録でググってみたら
jsonで記述と書かれてる
やっぱりタグは無関係で
行の前後を""で括るだけだし、カンマ区切りも要る
"Inner": {
"prefix": "in",
"body": [
"<section id=\"$1\">",
"\t<div class=\"inner\">",
"\t\t$2",
"\t</div><!-- .inner -->",
"</section>"
],
},
jsonで記述と書かれてる
やっぱりタグは無関係で
行の前後を""で括るだけだし、カンマ区切りも要る
"Inner": {
"prefix": "in",
"body": [
"<section id=\"$1\">",
"\t<div class=\"inner\">",
"\t\t$2",
"\t</div><!-- .inner -->",
"</section>"
],
},
257デフォルトの名無しさん
2020/06/19(金) 18:36:21.20ID:LA4wBl0H え、そうなのですか、、、
258デフォルトの名無しさん
2020/06/19(金) 18:57:56.53ID:a2rlVyD0 そもそもキー入力の短縮だし、基本はテンプレート登録だ
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "Log output to console"
あと、スニペット登録入力用のvscode拡張機能もあるようだ
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "Log output to console"
あと、スニペット登録入力用のvscode拡張機能もあるようだ
259デフォルトの名無しさん
2020/06/19(金) 21:44:28.86ID:q14TQ9ke ggrks
https://www.google.com/search?q=vscode スニペット 登録 拡張
https://www.google.com/search?q=vscode スニペット 登録 拡張
260デフォルトの名無しさん
2020/06/20(土) 00:03:50.12ID:D9McnEc6 #一行目
AAAランダム文字列1AAAランダム文字列2BBBランダム文字列3BBBランダム文字列4CCC
#二行目
AAAランダム文字列5BBB
このような文章があって
AAAランダム文字列2BBB
だけを1回の処理で抽出することは可能ですかね?
AAA〜CCCで挟まれ、かつAAA〜BBBの真の最短マッチというのでしょうか
二行目は抽出したくないです
AAA((?!AAA).)*CCC
↓
AAA((?!AAA|BBB).)*BBB
と2回の処理ではできたのですがどうも悔しいです
AAAランダム文字列1AAAランダム文字列2BBBランダム文字列3BBBランダム文字列4CCC
#二行目
AAAランダム文字列5BBB
このような文章があって
AAAランダム文字列2BBB
だけを1回の処理で抽出することは可能ですかね?
AAA〜CCCで挟まれ、かつAAA〜BBBの真の最短マッチというのでしょうか
二行目は抽出したくないです
AAA((?!AAA).)*CCC
↓
AAA((?!AAA|BBB).)*BBB
と2回の処理ではできたのですがどうも悔しいです
261デフォルトの名無しさん
2020/06/20(土) 00:10:55.64ID:GUrzgoSo >>260
AAA.*(AAA.*?BBB).*CCC
AAA.*(AAA.*?BBB).*CCC
262デフォルトの名無しさん
2020/06/20(土) 00:29:48.90ID:Spmc6WsU ランダム文字列の最初(最後)の文字がA(B)だった時は?
263デフォルトの名無しさん
2020/06/20(土) 00:44:31.03ID:Spmc6WsU264デフォルトの名無しさん
2020/06/20(土) 00:44:59.32ID:Spmc6WsU 誤爆スマン
265デフォルトの名無しさん
2020/06/20(土) 00:52:46.51ID:D9McnEc6266デフォルトの名無しさん
2020/06/20(土) 02:01:55.18ID:GUrzgoSo >>265
それは正規表現の問題じゃなくgrepの使い方の問題で
キャプチャグループを取り出せてないだけだと思う
pcregrep -o1 'AAA.*?(AAA.*?BBB).*CCC' <input>
とか
grep -oP 'AAA.*?¥K(AAA.*?BBB)(?=.*?CCC)' <input>
とか工夫して
それは正規表現の問題じゃなくgrepの使い方の問題で
キャプチャグループを取り出せてないだけだと思う
pcregrep -o1 'AAA.*?(AAA.*?BBB).*CCC' <input>
とか
grep -oP 'AAA.*?¥K(AAA.*?BBB)(?=.*?CCC)' <input>
とか工夫して
267デフォルトの名無しさん
2020/06/20(土) 02:35:31.58ID:D9McnEc6268デフォルトの名無しさん
2020/06/21(日) 11:54:44.04ID:RSezRE5h マークダウンのマッチのさせ方について
この2つのうち、上だけをマッチさせたいです
#半角スペースh1
#半角スペース半角スペース半角スペースh1
しかし
^# .*$
だと、両方マッチします。半角スペースが1つの場合のみマッチさせられるでしょうか
この2つのうち、上だけをマッチさせたいです
#半角スペースh1
#半角スペース半角スペース半角スペースh1
しかし
^# .*$
だと、両方マッチします。半角スペースが1つの場合のみマッチさせられるでしょうか
269デフォルトの名無しさん
2020/06/21(日) 12:19:16.08ID:1s00JmZm ^# [^ ]
270デフォルトの名無しさん
2020/06/21(日) 14:46:34.76ID:RSezRE5h ありがとうございます
# h
の部分だけマッチします
一文字の繰り返しの部分は、どう指定してるんでしょうか?
# h
の部分だけマッチします
一文字の繰り返しの部分は、どう指定してるんでしょうか?
271デフォルトの名無しさん
2020/06/21(日) 14:58:06.74ID:wEwARBW2 [^ ]+
272デフォルトの名無しさん
2020/06/21(日) 15:46:15.97ID:RSezRE5h だとスペースがマッチしません
ありがとうございます
ありがとうございます
273デフォルトの名無しさん
2020/06/21(日) 16:11:36.93ID:1s00JmZm274デフォルトの名無しさん
2020/06/21(日) 18:30:44.16ID:RSezRE5h ^#[ ]([^ ].*)$
これでいけたブリ
これでいけたブリ
275デフォルトの名無しさん
2020/06/27(土) 20:14:07.00ID:V+005EHj276デフォルトの名無しさん
2020/06/28(日) 00:20:52.36ID:x4PVBa+w chmateとやらのスレで聞いた方がいいと思うが
277デフォルトの名無しさん
2020/06/28(日) 20:47:34.83ID:hqGvkXPW わかる方教えてください
yyyy/mm/dd の形式で、下記のような0埋め処理をしたいのですが、一発処理方法がわかりません
大量にあるファイルを秀丸にてgrep置換予定です。空白がジャマすぐる
今後も処理の必要があるので、できれば一発、無理なら2周かな…
ex.) 2020/ 6/ 1 ⇒ 2020/06/01
([0-9]{4})/( [0-9]|[0-9]{2})/( [0-9]|[0-9]{2})
これで全条件拾えるが処理できないし、下記だと3周しないといけないし
([0-9]{4})/ ([0-9])/([0-9]{2}) ⇒ \1/0\2/\3 //月のみ1桁
([0-9]{4})/([0-9]{2})/ ([0-9]) ⇒ \1/\2/0\3 //日のみ1桁
([0-9]{4})/ ([0-9])/ ([0-9]) ⇒ \1/0\2/0\3 //両方1桁
どなたか、お願いしますm(_ _)m
yyyy/mm/dd の形式で、下記のような0埋め処理をしたいのですが、一発処理方法がわかりません
大量にあるファイルを秀丸にてgrep置換予定です。空白がジャマすぐる
今後も処理の必要があるので、できれば一発、無理なら2周かな…
ex.) 2020/ 6/ 1 ⇒ 2020/06/01
([0-9]{4})/( [0-9]|[0-9]{2})/( [0-9]|[0-9]{2})
これで全条件拾えるが処理できないし、下記だと3周しないといけないし
([0-9]{4})/ ([0-9])/([0-9]{2}) ⇒ \1/0\2/\3 //月のみ1桁
([0-9]{4})/([0-9]{2})/ ([0-9]) ⇒ \1/\2/0\3 //日のみ1桁
([0-9]{4})/ ([0-9])/ ([0-9]) ⇒ \1/0\2/0\3 //両方1桁
どなたか、お願いしますm(_ _)m
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★4 [BFU★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 東浩紀「日本はいままさに駆け引きをしている。」高市有事にピシャリ [834922174]
- 【高市経済】日経平均マイナス1600円!、金利1.76%!ドル円155円!世界恐慌へ [219241683]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 【悲報】麻生太郎、石破憎しで高市を擁立し晩節を汚す [884040186]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- 【高市速報】日本「中国さんお願い首脳会談させて!ねえってば!😭」 [931948549]
