レスアンカーと引用について
- 厳密に標準化されていない。
- 2chで標準的と思われるルール
- レスアンカー:
- 半角>> + レス番号。例">>100"
- 行頭とは限らない。
- 引用:
- 半角> + 半角スペース + 引用文。例"> 引用文"
- 行頭に限る。
- スペースがあればレスアンカーと明確に区別ができる。しかし実際にはスペースを入れないで引用することが多い。
- レスアンカー:
- 日本で多用されるルール
- 引用:
- 全角> + 引用文。例">引用文"
- 引用:
- その他、独自ルールで引用符を用いる人も多いので、文脈で解釈しなければならない。
- しかし判別困難な独自ルールのレスまでは正規表現で考慮しなくても良いと思う。処理が複雑になり遅くなる。
- 受け取る側で無理な解釈をして混乱するよりも、厳密な標準化の検討と周知徹底をするほうが適切だと感じる。
引用行のハイライト 【設定 - 非表示・キーワード - 本文KW】
例:設定画面
- 半角">"引用ハイライト
半角">" で引用、続くスペースは無視し、文字で始まる行をハイライトする。
以下の内から一つを選ぶ(同じ正規表現)- (?<=^|\n)>[ ]*(?:[^>0-9\s0-9 ].*|)(?=\n)
- (?m)^>[ ]*(?:[^>0-9\s0-9 ].*|)$
もう少し凝ってみた。以下は検証中
- 半角">"全角">"引用のハイライト
一個以上の">"や">"で引用し、続くスペースは無視し、文字で始まる行をハイライトする。
(?m)^[>>][>> ]*(?:[^>>0-9\s0-9 ].*|)$ - 標準的?と思われる半角">"+半角スペース引用のハイライト
半角">"+スペースなら、次が数字で始まっても引用であると解釈してハイライトする。
(?m)^>(?:[ ].*|)$ - 日本で多用される全角">"引用のハイライト
">"の次が数字で始まっても引用であると解釈してハイライトする。
(?m)^>.*$
上の正規表現の組み合わせは以下の通り
- 狭く解釈するのは、1
- 中間が1+2、1+3、2+3
- 広く解釈するのは、1+2+3
基本的に1のみを用い、広く解釈したい場合に組み合わせを用いれば良いと思う。
登録後、以下のテスト文を書き込み欄プレビューすることで確認できる。
例では正規表現全組み合わせ1+2+3を用いた場合で、マッチの有無を分けてある。
例では正規表現全組み合わせ1+2+3を用いた場合で、マッチの有無を分けてある。
引用文の例(正規表現1+2+3で広くマッチさせる例)
> (↑行末が半角スペースの例) > (↑行末が全角スペースの例) >文字列 > 文字列 (標準的と思われる引用表現) > 文字列 > 100 > >>100 > 100文字列 > >>100文字列 > 100 >>文字列 > >> >>> >文字列 (日本で多用される引用表現) >>文字列 >>>100 >>>100文字列 >>100文字列 >100文字列 >100文字列 >100 >100 >>100 >>>100 > 100 > 100 >> 100 > 100文字列 > 100文字列
非引用文の例(正規表現1+2+3でマッチしない例)
>100 >>100 (標準的なレスアンカーの表現) >>>100 >100文字列 >>100文字列 >>>100文字列 >> 100文字列 >>> 100文字列 >> 100 >>> 100
添付ファイル