[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
801
(7): 2019/04/22(月)20:21 ID:GQt1LKrG(1) AAS
sed
置換
1に挟まれたN個以下の0または-で構成された文字列を、同数の1で置き換える

10001→11111
100-1→11111
1---1→11111
10-0-0001→111111111

置換対象と同数の文字列で置換するというところをどう正規表現で表すかわからず、、、
よろしくお願いします
803
(2): 2019/04/23(火)07:05 ID:k/th3sVe(1/2) AAS
>>801
sed ':r; s/1[0-]\([0-]*1\)/11\1/; tr'

前方に 1 のある 10 を 11 に置換する
置換に成功したら tラベル で :ラベル の位置に戻って繰り返す
804
(3): 2019/04/23(火)08:49 ID:ef59e0DS(1/5) AAS
>>801
たぶんこれだけでは不要なところを置換しそう
:a;s/1([^0\-]*)(?:[0\-])(.*)1/1$11$21/g;t a
例題をこなすのは確認
805
(3): 2019/04/23(火)10:21 ID:yIB0exXp(1/6) AAS
>>801
100010
とか
1000101
とか
があるのか?
あった場合はどうすべきか
そこは明記しような。
謎だらけの設計書書く奴はIT向いてない。
806
(2): 2019/04/23(火)11:46 ID:ef59e0DS(2/5) AAS
>>805
>>804で> 100010→111110、> 1000101→1111111は確認

というかオレは前後にゴミがつくことは何ら影響がある題とは思わなかった
>>801の「1に挟まれたN個以下の0または-で構成された文字列を、同数の1で置き換える」にはその前後について言及ないから「触らない」と判断

後者を1000101→1111101で求めるかという点は気になるところ
最初の1〜1ブロックのみなのか、行中の1〜1最長一致ブロックなのか(すべての1〜1ブロックを個別処理も同一)
809
(2): 2019/04/23(火)12:38 ID:ef59e0DS(3/5) AAS
>>807
反論と取られたのかな
反論でも賛意でもないよ

個人的には>>801が「よい定義や仕様」とは欠片も思わない一方で「ダメダメ」とも思わない
組んでいく中で詳細を詰めていくことも現実としてある
あなたが求めているようながっちり仕様が決まっていたらむしろやることなんてほぼないかも
単に日本語を翻訳する作業になるのでむしろ苦痛かな…
そこまで詰められるなら日本語で指示しないで自分で書けよと思ってしまうかも

スレ的に読み替えればがっちり仕様を出した上で「これは正規表現で可能か?」という命題に繋がるのでスレでがっちり仕様を出すなと言う意味ではないです(念為)

仕事でもなし頭の体操的にてきとーに答えてるだけなんでこれくらいなら気にしない派
811: 801 2019/04/23(火)13:49 ID:CFFnqXFD(1) AAS
問題が曖昧であったため議論を紛糾させてしまいました。すみません。
たしかに入れ子のことや、一致する最初の文字列か、最長か、01-以外の文字の存在などを明確に記載できていませんでした。
今回の問題で聞きたかったことをシンプルに表現すると、検索文字列の文字数(1〜N個)に依存した置換が可能なのか、になります。
そこについては先の人が回答してくださった通り、文字数を記憶しておくような処理は不可能であるから正規表現の範疇ではないと思いました。
これまでの意見から当初目的ではないものの多くのヒントをもらいました。ありがとうございました。
問題提示者としていたらないながら、この話はクローズさせていただきます。
818: 2019/04/23(火)19:46 ID:yIB0exXp(6/6) AAS
>>817
>>805>>801宛だと明示してるし
>>803>>804なんてどこにも書かれていないのに勝手に勘違いされてもさあ。
どこをどう見たってお前が勝手に絡んで来てるのに
「絡んだ形」とかふざけた言い方すんなよ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.049s