2020年12月1日のブックマーク (1件)

  • ◆^,$は行頭,行末ではない;正規表現の落とし穴 - 万象酔歩

    正規表現の落とし穴をJavaのString#replaceAll()の実働サンプルで解説します。 ^は行頭ではない $は行末ではない 開始終了条件が有る場合*?(0個最短一致)を使う 始終了条件が無い場合は+(1個以上最長一致) 開始条件のみの場合は*(0個以上最長一致)) 終了のみの場合は*?(0個以上最短一致) 確実な終端定義;[文字コードのセット]など 複数行一致は[\S\s]*? 前置式 肯定(?<=...) 否定(?<!...) 後置式 肯定(?=...) 否定(?!...) 前置式+後置式(単語のマッチなど) グループ参照、番号および名前 *の落とし穴 サンプルは regexSample.zip に置きました。 まあ、String#replaceAllは使わない方がよい。というだけかも。 ^は行頭ではない 正規表現で^は「データ(処理単位)の先端」であって行の先端ではありません

    ◆^,$は行頭,行末ではない;正規表現の落とし穴 - 万象酔歩
    tanjoin
    tanjoin 2020/12/01