なにがしたい感じですか?
読み取るのは標準入力?
Conversation
Notices
-
Embed this notice
B̅ (cmplstofb@mathtod.online)'s status on Thursday, 29-Sep-2022 11:43:08 JST B̅ -
Embed this notice
†真☠社会性昆虫ちゃん† (ayu_mushi@mstdn.jp)'s status on Thursday, 29-Sep-2022 11:55:42 JST †真☠社会性昆虫ちゃん† @cmplstofB 読み取るのは標準入力です。
<a class='abtn abtn-fc' href='/conju/index.jsp?target=dire'>
dire ←この部分を抽出したいのです
</a>awk "/<a class='abtn abtn-fc' href='\/conju\/index.jsp?target=dire'>/,/<\/a>/"
などとしても抽出できなかったのでこまっています。 -
Embed this notice
B̅ (cmplstofb@mathtod.online)'s status on Thursday, 29-Sep-2022 12:00:27 JST B̅ @ayu_mushi .と?の前に\を置いてみてください。
今移動中で動作を確認できないんですが、たぶんそれで動きます。 -
Embed this notice
B̅ (cmplstofb@mathtod.online)'s status on Thursday, 29-Sep-2022 13:03:31 JST B̅ @ayu_mushi いえ、ぜんぜん助けになれなくてすいません。
パイプに出力する前の表示が改行しているように見えた場合、たぶん\n\rというかたちの改行になっているのかもしれません。いずれにせよ、解決してよかったです。
-
Embed this notice
†真☠社会性昆虫ちゃん† (ayu_mushi@mstdn.jp)'s status on Thursday, 29-Sep-2022 13:03:32 JST †真☠社会性昆虫ちゃん† @cmplstofB
いえすみません四番目ではなく2番目の</div>でした -
Embed this notice
†真☠社会性昆虫ちゃん† (ayu_mushi@mstdn.jp)'s status on Thursday, 29-Sep-2022 13:03:32 JST †真☠社会性昆虫ちゃん† @cmplstofB
awk "/<a.*/,/<\/a>/"
としてもそれと同じ結果になりました。 -
Embed this notice
†真☠社会性昆虫ちゃん† (ayu_mushi@mstdn.jp)'s status on Thursday, 29-Sep-2022 13:03:32 JST †真☠社会性昆虫ちゃん† @cmplstofB よくわからないですが、一旦変数に代入したあとでecho -e したら抽出できました。パイプに渡す過程で改行が消えてしまったのでしょうかね。お付き合いいただきありがとうございましたm(_ _)m
B̅ repeated this. -
Embed this notice
†真☠社会性昆虫ちゃん† (ayu_mushi@mstdn.jp)'s status on Thursday, 29-Sep-2022 13:03:33 JST †真☠社会性昆虫ちゃん† @cmplstofB あ、正規表現でしたね。バカなことしてました。でも、それでも<a class=...>から</a>までではなく、先頭から</div>まで (これはこの文書で4番目にするdiv要素ですが)の、関係ない範囲が切り抜かれてしまいます。
-
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Thursday, 29-Sep-2022 14:00:49 JST 斎藤ただし @ayu_mushi @cmplstofB 横からすみません、面白そうな話を見かけたので。
今回うまく行ったようで何よりです。ただもし今後、もうちょい大変なことを自分でしたいと思った時のために、
「普通の正規表現でHTMLの構造をちゃんと見るのはどう頑張っても無理」
というのを頭の隅に入れとくのはいいかもしれません。タグみたいな、入れ子になった構造を普通の正規表現でうまく扱うのは、そもそも理論的に無理なのが有名です。
ただ今回のように入力が分かり切っていれば、それに応じてうまく処理を書けば切り抜けられる時もあります。
入れ子についても、たとえば「10回しか入れ子にならない」なら、10回分頑張って書けばうまく動く可能性はあります。(が、HTMLならではの大変さがまた色々々とあります)「普通じゃない」正規表現はこんなものです。ただgawkにはなさそうに見えました。
* https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html#subexp
* https://atzy.hatenadiary.org/entry/20080910/p1B̅ repeated this. -
Embed this notice
†真☠社会性昆虫ちゃん† (ayu_mushi@mstdn.jp)'s status on Thursday, 29-Sep-2022 14:00:55 JST †真☠社会性昆虫ちゃん† @tadd @cmplstofB あー、ポンピング補題とかあったような記憶ありますね…
今回はあんまり入れ子になってないので? できてしまいましたがIn conversation permalink B̅ repeated this. -
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Thursday, 29-Sep-2022 14:01:03 JST 斎藤ただし @ayu_mushi @cmplstofB なるほど、その辺をご存知ならば自分から言えることはなさそうです。むしろ自分がそれをちゃんと知りませんでした……。
この言語Bの0・1を開きタグ・閉じタグと思っていただければ間違いないと思います。もちろん実際、間にいろいろ挟まりますが、そうでなく単純にしても無理、というやつです。
https://kyopro.hateblo.jp/entry/2018/12/29/055810ただ、閉じタグはあるかないかわからないとか、その補い方も文脈に依存するし、というあたりがHTMLならではの辛さです。
一般的な方向で自力で頑張らなければ、何とか逃げられるとは思います。In conversation permalink Attachments
-
Embed this notice