[否|肯]定[先|後]読み

正規表現の「否定先読み」「肯定先読み」「否定後読み」「肯定後読み」をRでやりたかった。
実例で学ぶ正規表現の「否定先読み」「肯定先読み」「否定後読み」「肯定後読み」 #正規表現 - Qiita

書き方 名前 意味
(?=pattern) 肯定先読み 直後にpatternがある
(?!pattern) 否定先読み 直後にpatternが無い
(?<=pattern) 肯定後読み 直前にpatternがある
(?<!pattern) 否定後読み 直前にpatternが無い

例えば、【】の中に含まれるテキストを抽出しようと思ったら、この方法をしらなかった以前のアホな自分は、

stringr::str_extract(text, "【.+?】")

としてから、【】を削除する、ということをしていたわけであるが、これを使うと、抽出の時点で、目的の【】の中のテキストだけ取得することができる。

text <- "長いテキストの中から【かっこのなかの文章を】抽出してみましょう"
pat <- c("肯定先読み"="?=", "否定先読み"="?!", "肯定後読み"="?<=", "否定後読み"="?<!")

p <- c(outer(sprintf("(%s【).+", pat), sprintf("(%s】)", pat), paste0))
result <- mapply(stringr::str_extract, text, p)
肯定先読み 肯定先読み	(?=【).+(?=】)    【かっこのなかの文章を 
否定先読み 肯定先読み	(?!【).+(?=】)    長いテキストの中から【かっこのなかの文章を 
肯定後読み 肯定先読み	(?<=【).+(?=】)    かっこのなかの文章を 
否定後読み 肯定先読み	(?<!【).+(?=】)    長いテキストの中から【かっこのなかの文章を 
肯定先読み 否定先読み	(?=【).+(?!】)    【かっこのなかの文章を】抽出してみましょう 
否定先読み 否定先読み	(?!【).+(?!】)    長いテキストの中から【かっこのなかの文章を】抽出してみましょう 
肯定後読み 否定先読み	(?<=【).+(?!】)    かっこのなかの文章を】抽出してみましょう 
否定後読み 否定先読み	(?<!【).+(?!】)    長いテキストの中から【かっこのなかの文章を】抽出してみましょう 
肯定先読み 肯定後読み	(?=【).+(?<=】)    【かっこのなかの文章を】 
否定先読み 肯定後読み	(?!【).+(?<=】)    長いテキストの中から【かっこのなかの文章を】 
肯定後読み 肯定後読み	(?<=【).+(?<=】)    かっこのなかの文章を】 
否定後読み 肯定後読み	(?<!【).+(?<=】)    長いテキストの中から【かっこのなかの文章を】 
肯定先読み 否定後読み	(?=【).+(?<!】)    【かっこのなかの文章を】抽出してみましょう 
否定先読み 否定後読み	(?!【).+(?<!】)    長いテキストの中から【かっこのなかの文章を】抽出してみましょう 
肯定後読み 否定後読み	(?<=【).+(?<!】)    かっこのなかの文章を】抽出してみましょう 
否定後読み 否定後読み	(?<!【).+(?<!】)    長いテキストの中から【かっこのなかの文章を】抽出してみましょう
肯定先読み 肯定先読み (?=【).+(?=】) 【かっこのなかの文章を
否定先読み 肯定先読み (?!【).+(?=】) 長いテキストの中から【かっこのなかの文章を
肯定後読み 肯定先読み (?<=【).+(?=】) かっこのなかの文章を
否定後読み 肯定先読み (?<!【).+(?=】) 長いテキストの中から【かっこのなかの文章を
肯定先読み 否定先読み (?=【).+(?!】) 【かっこのなかの文章を】抽出してみましょう
否定先読み 否定先読み (?!【).+(?!】) 長いテキストの中から【かっこのなかの文章を】抽出してみましょう
肯定後読み 否定先読み (?<=【).+(?!】) かっこのなかの文章を】抽出してみましょう
否定後読み 否定先読み (?<!【).+(?!】) 長いテキストの中から【かっこのなかの文章を】抽出してみましょう
肯定先読み 肯定後読み (?=【).+(?<=】) 【かっこのなかの文章を】
否定先読み 肯定後読み (?!【).+(?<=】) 長いテキストの中から【かっこのなかの文章を】
肯定後読み 肯定後読み (?<=【).+(?<=】) かっこのなかの文章を】
否定後読み 肯定後読み (?<!【).+(?<=】) 長いテキストの中から【かっこのなかの文章を】
肯定先読み 否定後読み (?=【).+(?<】) 【かっこのなかの文章を】抽出してみましょう
否定先読み 否定後読み (?!【).+(?<!】) 長いテキストの中から【かっこのなかの文章を】抽出してみましょう
肯定後読み 否定後読み (?<=【).+(?<!】) かっこのなかの文章を】抽出してみましょう
否定後読み 否定後読み (?<!【).+(?<!】) 長いテキストの中から【かっこのなかの文章を】抽出してみましょう

租税法の入門本

読んだ。

評価が高いのか、3版は中古でも常に半額以上の値段がついている。
フリマで線が引かれまくっている安いものを入手できた。
租税とは…みたいな、歴史的変遷や、現在の租税の統計などが載っていて、それから話が始まるので、ぶっちゃけ試験対策的には、効果が薄いと感じた。
租税法の教科書としては、よさそうだが、試験対策では使えなさそうなのに、なぜか世間的評価が高くて、乖離しているように思えた。
あと、紙質が辞書っぽくてぺらくて好かなかった。

前書きで、系統だって概説はせず、講義で扱いやすいように8ページで1項目が記載されるように配慮した、みたいなことが書いてある。
判例の考え方を書いている。
租税法の前提を先に勉強していれば、わかりやすいかと思った。
2020年刊行で、最新の租税法的には古いのかもしれないが、基本概念は変わらないし、何より300円くらいで中古が出回っているので、よいと思った。
後半は相続税なので試験対策的に不要なので飛ばした。

日評ベーシックシリーズはいままで見たことがなかったが、他のシリーズも薄くて安いので読む分にはよさそうだと思った。

基本憲法Ⅰ

読んだ。

2017年刊行のわりには評判がよくて中古でもなかなか価格が落ちてなかったが、フリマアプリでたまたま安く見つけた。
日本評論社の基本シリーズで非常に読みやすかった。
基本的人権の説明から、関連する判例を挙げて解説し、章末に論文形式の設問がある。
判例は代表的なもののみで、判決の要旨はほんのわずかしか掲載されていないので、別途百選か解説集で判旨は見ておいたほうがよさそう。
章末問題は方針と、筆者の採点実感のようなものが載っており、解答例はない。
これ1冊ではもちろん網羅できないが、お硬そうな基本書を読んだり、最新版の4版にいたってはごつくなって鈍器と化しているシケタイを読むよりかは、取っ掛かりとしてはよいと思った。
mikuhatsune.hatenadiary.com
問題点としては、2017年刊行でその後改定がなく、最近流行りのLGBTQ関係の判例がないので結局百選を読まなければならないかも。基本憲法Ⅱは出ないのだろうとか思っていたら、出ていた。

Let's note SR3 を買ってUbuntu をインストールした

Let's note の32GB モデルが安かった(CF-SR3TSUCP)ので思い切って購入した。
タッチパネルである必要性はまったくない。
論文は書かない解析もしない、のにメモリ32GBでi7 なんて何するつもりなんだ、と聞かれても動画を見るかtex を書くくらいしかない。
パナソニック Let's note SR3 プレミアムエディション タッチパネル搭載モデル CF-SR3TSUCP 価格比較 - 価格.com
ASCII.jp:「レッツノートSR」実機レビュー = 12.4インチ3対2ディスプレーに5Gも搭載の完全新デザイン

Let's note オタクだが新品定価購入はしたことがない。
4,5年おきに中古で買うたびにUbuntu をインストールするのだが、毎回何かしら引っかかって手こずる。
前回はUEFI で手こずったのだが、今回はWindows 11 に搭載されている(?) BitLocker というディスク保護プログラムのせいでインストールに手こずった。
mikuhatsune.hatenadiary.com

まずRufus ではGPT でインストールUSB を作成する。
そもそもインストールイメージが6GB もあったのでダウンロードから時間がかかった。
BIOS でセキュアブートを無効にする。
ここまでは前回のRZ4やSZ5 へのインストールと同じだが、Windows 領域を残してデュアルブートにしようとすると、BitLocker を解除しないとできません、と出る。
BitLocker の解除は、GUI 的にはWindows ボタンから探っていくと、下記の通りになるが、システム情報では「BitLocker を有効にする」という状態になっているので、これから察するに解除状態のはずだが、Ubuntu のインストール時には、有効になっていて、インストールできない(パーティションが作成できない)。
BitLockerを有効 / 無効にする方法 | ドスパラ サポートFAQ よくあるご質問
他に探すと、CUI で解除コマンドを入力しないといけないようで、cmd をctrl+shift を押した状態で起動して管理者権限で実行して、

manage-bde -status

を実行すると、保護解除状態であるのに、結局インストールできないので、

manage-bde -off C:

(C: はドライブを適宜選択する)としてみると、-status で確認している間に解除状況の%がどんどん変化していく(数分かかる)ので、解除完了してからインストールしてみると、できた。
Windows のディスク管理ツールでも、保護されているときはWindows のブートローダーのあるパーティションは、「保護」となっていたが、解除されると保護の文字は消えていた。
セキュリティに問題があるのかもしれないが、データが消滅して復旧できなくなった場合には潔く諦めることにしよう。

Windows 領域についてはいつものごとくリカバリUSBを作成しようと思ったら、Windows 11から(?)リカバリーイメージがLet's note 公式HPから入手できるようなので、これによりSSD内のリカバリ領域がない(?)ということらしいのだが、Ubuntu をインストールするときに普通にリカバリ領域があったがどういうことなん? と思いつつ、ダウンロードできるなら急いで作らなくてもいいか、と思いいきなりUbuntu をインストールした。事故ったらどうするつもりだったんだ?

予備試験短答を受けてきた

  • 4ヶ月前(2月)

そろそろ予備試験短答を総ざらいしようと思って問題演習に取り組むが、過去にやったスクール東京の演習問題はPDF化したので重たい。
と思って探していたらstudying が司法試験・予備試験の短答過去問を分野別に並べて解説付きで、無料会員登録するだけでスマホ・アプリから演習できることを見つけたので移動時間や麻酔中にポチポチ始める。
ログイン - スタディング 会員ページ

  • 3ヶ月前(3月)

出願最終日になって慌ててマイナポータルから出願する(21時くらい)。
出願すること自体に資格はまったくいらない(学歴もいらない)ので、出願することと受験費用を納めればよい。
最初の登録が反映されるまでに10分くらい、受験料振込が反映されるのに10分くらいかかったので、さすがに日付が変わる寸前はやめたほうがよいと思われる。

  • 1ヶ月前(6月)

4ヶ月くらいかかってようやく全問演習を終えた。
AI 実力予想というものがあって最終的に97/210点と予想された。個別には憲16刑15民17民訴14刑訴14商12行8点だった。
行政法は行政庁が行わなければならない義務なのか努力義務なのかそういう細かいところをきちんと覚えていないが故にポロポロ点をこぼしてしまっていた。
判例問題も結末はわかっていても細かい判旨を覚えていなくて間違えることが多かった(憲法にも通ずる)。
商法は機関とその選任、あと訴訟関係があいまいにしか覚えておらず点がとれていなかった。なのでもう思い切って積んでいたシケタイを読むことにした。

実際の勉強時間はこんな感じだったようである。

伊藤塾と、LECの模試2回分を昨年も買っていたので今年度も買って解いてみるが、法律科目だけでは95点前後しかとれず、AI実力予想に完全に予想されてしまっている。
昨年度分の模試3回分と、なんとか令和4-7年分を解いてみるが、これも110点くらいまでしか取れない。詰んでいる。

  • 1週間前

電子出願したから受験票はどうなっているのかわからなかったが、マイナポータルから取得して紙に印刷して持ってくるシステムのようで、マイナポータルから探したが全然見つからず焦ったが、受験情報の⇩をクリックするとPDFがダウンロードできるようになっていたので安心した。

  • 4日前

水曜日から平日を丸々休みにしておいたのに、木曜日にバイトをいれたら6件もあてられてしまい、平日の最高額を稼ぎ出したが疲労困憊する。
その後も祇園祭や直前土曜も子供に付き合って結局勉強せずに本番に突入する。

  • 当日

前日入りしようと思っていたが、結局ホテルも取ってないし朝から80分くらいかけて電車で行く。大阪会場(近畿大学)なのだが最寄りに行く近鉄電車に乗り換えたあたりから陰キャ感が増してきてなんだろこれ…と思ったらコミケの既視感だった。
駅から10分くらい歩かされた。
余裕を持って集合時刻8:45より早くついたらそもそもまだ教室に入れなかった。8:45に教室に入れたが、そこから説明開始の9:15まで手持ち無沙汰だったので次があれば直前に来ようと決意した。

  • 民法・商法・民事訴訟法

いつも分量が多くて演習中も全問解こうとすると時間が足りてない。民法で35分かかっていたので商法で巻き返そうと思ったら商法を8問くらい解いたところでもう50分経っていたので焦る。
なんとか解いて民事訴訟法に行くと、1問目から文字数が多くて焦る。しかも誤答を選べなのにばっちり正解を2つ書いていた。
既判力の問題は飛ばした。もちろん間違っていた。
最後は泣きながら残り1分で全問終えた。見直しはできなかった。

  • 憲法・行政法

憲法の解答欄が1-5 のパターンがあることに少し動揺する。
憲法・行政法は毎回わかっててもわからんでもサクサク行くので40分くらいで終えたがどちらもまったく手応えなかった。

  • 刑法・刑事訴訟法

過去問セットを解くようになって一番得点できるようになった科目なので少し自信がついた、と思ったら1問目から不真正不作為犯なんて出るし該当するものをすべて選んだ組み合わせはどれか、なんていう選択肢があるし長文穴埋め問題はかなり自信がなくなってくるし泣きそうだった。
刑事訴訟法は最初はテンポよく解いていたが後半は時間がきつくなって全選択肢検討は諦めて運良く該当した肢とセットになっているものだけ検討してなんとか時間内に終えた。

  • 一般教養

模試ではだいたい10問しか合わないので10問を目標に解こうと思ったが英語問題が模試より訳わからなすぎて6題分解けなかったため普通の問題を解かざるをえなくなった。
理系問題もなんかようわからんし辛かった。

終わってから当直があるので電車ですぐ仕事に向かった。
とりあえずアガルートの速報と、SNSでみかけたChatGPTに一般教養を解かせた速報では

アガルート 伊藤塾 辰巳 LEC}
民法 18 18 18
商法 18 18 18
民事訴訟法 22 22 58(計) 22
憲法 19 18 18
行政法 12 12 31(計) 12
刑法 23 23 23
刑事訴訟法 19 21 42(計) 19
一般教養 33 33 33 33
合計 164 165 164 163

と合否ライン直上にいるっぽい。7/21 時点の伊藤塾での合格推定点は163点だった。
完全に落ちるものだと思っていたから論文の勉強してないしバイトと日程が被ってるからなんとかしなきゃ。

グラフで考える会社法の機関設計

会社法の機関を基本書でよくみる一覧表だけで理解できるとはとうてい思えない。
と思ってなにかいい方法がないのかと思っていたら、図で覚える機関設計というのを見つけた。
【渾身】図で覚える 株式会社の機関設計 (経営法務)【中小企業診断士】 – 中小企業診断士試験 一発合格道場
グラフというのはいわゆるネットワーク図のことである。

委員会のところは監査等委員会設置会社か、指名委員会等設置会社かの区別はあるが、経営層と内部監査機関のゴチャゴチャ具合がわかりやすくなったし、なにより本を読んでいて「…公開会社(ただし指名委員会等
設置会社を除く)…」みたいな記述があったときに、()内が長すぎて何をいまいちわかりにくかったのが、このグラフでどのノードを通ったグラフを構成している会社か把握できるようになったので、なんとなく読みやすくなった、気がする。
何より機関設計系の短答問題が確実に解けるようになったのでよかった。

library(igraph)
library(plotrix)
myellipse <- function(coords, v=NULL, params) {
    vertex.color <- params("vertex", "color")
    if (length(vertex.color) != 1 && !is.null(v)) {
        vertex.color <- vertex.color[v]
    }
    vertex.frame.color <- params("vertex", "frame.color")
    if (length(vertex.frame.color) != 1 && !is.null(v)) {
        vertex.frame.color <- vertex.frame.color[v]
    }
    vertex.size <- 1/1 * params("vertex", "size")
    if (length(vertex.size) != 1 && !is.null(v)) {
        vertex.size <- vertex.size[v]
    }
    vertex.size2 <- 1/1 * params("vertex", "size2")
    if (length(vertex.size2) != 1 && !is.null(v)) {
        vertex.size2 <- vertex.size2[v]
    }
    draw.ellipse(coords[,1], coords[,2], vertex.size, vertex.size2, col = vertex.color, border=vertex.frame.color)
}
add_shape("ellipse", clip=igraph.shape.noclip, plot=myellipse)


l <- rbind(
     c("株主総会", "取締役"),
     c("株主総会", "取締役会"),
     c("取締役", "監査役"),
     c("取締役会", "監査役"),
     c("取締役会", "監査役会"),
     c("取締役会", "委員会"),
     c("監査役", "会計監査人"),
     c("監査役会", "会計監査人"),
     c("委員会", "会計監査人"),
     c("取締役会", "会計参与")
     )
kikan <- c("株主", "経営層", "内部監査", "外部監査")
kikan.col <- adjustcolor(c("violet", "green", "orange", "cyan"), 0.3)
vertex.col <- c("止まれない"="cornsilk", "止まれる"="seagreen1")
g <- graph_from_edgelist(l)
lsugiyama <- t(matrix(c(1,1,0,2,1,2,0,3,1,3,2,3,1,4,2,2), nr=2))
n <- norm_coords(t(matrix(c(1,1,0,2,1,2,0,3,1,3,2,3,1,4,2,2), nr=2)))
rownames(lsugiyama) <- rownames(n) <- V(g)$name
V(g)$label.font <- 2
V(g)$label.color <- "black"
V(g)$shape <- "circle"
V(g)$shape[match(c("取締役", "監査役", "監査役会", "会計参与", "会計監査人"), V(g)$name)] <- "rectangle"
V(g)$shape[match(c("株主総会", "取締役会", "委員会"), V(g)$name)] <- "ellipse"
V(g)$color <- ifelse(V(g)$shape == "rectangle", vertex.col["止まれる"], vertex.col["止まれない"])
V(g)$size <- 30
V(g)$vertex.size2 <- 20
V(g)$frame.color <- "black"
V(g)$frame.color[match("取締役会", V(g)$name)] <- "red"

E(g)$color <- "black"
E(g)$arrow.size <- 2
E(g)$width <- 2
E(g)$lty <- ifelse(apply(as_edgelist(g), 1, setequal, c("取締役会", "会計参与")), 3, 1)
E(g)$color <- ifelse(apply(as_edgelist(g), 1, setequal, c("監査役", "会計監査人")), "red", "black")

par(mar=c(0, 0, 0, 0))
plot(g, layout=lsugiyama, vertex.shape="none", vertex.label=NA, edge.color=NA)
pa <- par()$usr
y <- c(sort(unique(norm_coords(lsugiyama)[,2])), 100)
for(i in seq(kikan)){
  y0 <- y[c(i, i, i+1, i+1)]-diff(y)[1]/2
  polygon(pa[c(1,2,2,1)], y0, col=kikan.col[i], border=NA)
  if(i != 1){
    legend(pa[2], y0[1], legend=kikan[i], xjust=1, yjust=0, bty="n", text.font=2)
  } else {
    legend(pa[2], y[1], legend=kikan[i], xjust=1, yjust=0.5, bty="n", text.font=2)
  }
}
legend("topright", legend=names(vertex.col), pch=c(21, 22), pt.bg=vertex.col, bty="n", cex=2.0)
plot(g, layout=lsugiyama, vertex.size=40, vertex.size2=15, add=TRUE)
text(n["会計監査人", 1], n["会計監査人", 2], "大会社", adj=c(NA, -2))
xy <- colMeans(n[c("会計監査人", "監査役"),])
text(xy[1]-0.2, xy[2], "大会社\nかつ\n公開会社\nは不可", adj=c(NA, 0))
text(n["取締役会", 1], n["取締役会", 2], "公開会社", adj=c(2, NA))
text(n["会計参与", 1], n["会計参与", 2], "任意に設置可能", adj=c(NA, -2.0))
xy <- colMeans(n[c("取締役会", "会計参与"),])
text(xy[1]-0.10, xy[2], "非大会社\nかつ\n非公開会社\nは可能", adj=c(0.5, 1.2))

基本刑事訴訟法Ⅰ・Ⅱ

読んだ。

日本評論社の基本シリーズのひとつで、基本刑法や基本憲法などとクロスリファレンスがある。
手続理解編はやたら評価が高くて中古が出回っておらず、高かったがたまたま安い中古があったので入手した。
論点編は別冊になっているので、手続のみを記載している本編はそれなりに薄い(350Pくらいあるが)ので読みやすい。
通常の基本書にありがちな、途中に論点で迷宮に迷い込まないので手続きだけ勉強しようと思ったら、それなりに読みやすいが、どのみち論点は勉強する羽目になるので別冊と行き来しないといけないのは、手間といえば手間である。
基本シリーズに共通する、灰色の網掛けの設問や、本文で太字になっている箇所は、短答で出題されている部分であるので、勉強が捗った。

論点が別冊になっている。
伝聞例外がいまだによく理解できていない。

ページ参照が1章2節、のようなシケタイの感じなので、参照しようとすると非常に読みづらい。