From 7a4a5878cb3bea0d4eae5c5d00d5b6c253a283f0 Mon Sep 17 00:00:00 2001 From: Kazuhiro NISHIYAMA Date: Tue, 14 Nov 2017 21:17:07 +0900 Subject: [PATCH 1/2] Add about absence (absent) operator closes #395 --- refm/doc/news/2_4_0.rd | 4 +++- refm/doc/spec/regexp19 | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/refm/doc/news/2_4_0.rd b/refm/doc/news/2_4_0.rd index 6f8a4c113d..150a7bad33 100644 --- a/refm/doc/news/2_4_0.rd +++ b/refm/doc/news/2_4_0.rd @@ -99,7 +99,9 @@ for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences. * [[m:Regexp#match?]] を追加 [[feature:8110]] true/false を返し、バックリファレンスを生成しません。 - * Onigmo 6.0.0 に更新 + * Onigmo 6.0.0 に更新 (Ruby 2.4.0) + * Onigmo 6.1.1 に更新 (Ruby 2.4.1) + * 非包含オペレータをサポートしました [[url:https://github.com/k-takata/Onigmo/issues/82]] * [[c:Regexp]]/[[c:String]]: Unicodeのバージョンを8.0.0から9.0.0に更新しました [[feature:12513]] diff --git a/refm/doc/spec/regexp19 b/refm/doc/spec/regexp19 index 45b80e04f1..1db48df4ba 100644 --- a/refm/doc/spec/regexp19 +++ b/refm/doc/spec/regexp19 @@ -684,6 +684,20 @@ d,a,u のオプションは正規表現直後に置く方式では指定がで /x\ y/x.match("x y") # => # \s や \p{Space} のような文字クラスを使うのが良い場合も多いでしょう。 +#@since 2.4.0 +=== 非包含オペレータ (実験的) +(?~式) という記法で、式にマッチする文字列を含まない任意の文字列にマッチします。 +#@until 2.5.0 +(Ruby 2.4.1 で更新された Onigmo に含まれる機能のため、Ruby 2.4.0 では使えません。) +#@end + +例えば (?~abc) は "", "ab", "aab", "abb", "ccdd" などにはマッチしますが、 +"abc", "aabc", "ccabcdd" などにはマッチしません。 + +/\/\*(?~\*\/)\*\// は C スタイルのコメントにマッチします。 +例えば "/**/", "/* foo bar */" など。 + +#@end === 一覧 Rubyで利用可能なメタ文字、メタ文字列の一覧です。 @@ -792,6 +806,10 @@ Rubyで利用可能なメタ文字、メタ文字列の一覧です。 * (?on-off:pat) patの間だけ on オプションを有効にし、offオプションを無効にする コメント * (?#comment here) コメント +#@since 2.4.0 +非包含オペレータ + * (?~pat) 非包含オペレータ +#@end === 特殊変数 パターンマッチしたときに、以下の特殊変数にマッチの情報をセットします。 From bad43b4e8c352dded71671aabf8690d4bf9b8ea1 Mon Sep 17 00:00:00 2001 From: Kazuhiro NISHIYAMA Date: Wed, 29 Nov 2017 09:11:25 +0900 Subject: [PATCH 2/2] Add English name of absence operator --- refm/doc/news/2_4_0.rd | 2 +- refm/doc/spec/regexp19 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/refm/doc/news/2_4_0.rd b/refm/doc/news/2_4_0.rd index 150a7bad33..4c8d4cb087 100644 --- a/refm/doc/news/2_4_0.rd +++ b/refm/doc/news/2_4_0.rd @@ -101,7 +101,7 @@ true/false を返し、バックリファレンスを生成しません。 * Onigmo 6.0.0 に更新 (Ruby 2.4.0) * Onigmo 6.1.1 に更新 (Ruby 2.4.1) - * 非包含オペレータをサポートしました [[url:https://github.com/k-takata/Onigmo/issues/82]] + * 非包含オペレータ(absence operator)をサポートしました [[url:https://github.com/k-takata/Onigmo/issues/82]] * [[c:Regexp]]/[[c:String]]: Unicodeのバージョンを8.0.0から9.0.0に更新しました [[feature:12513]] diff --git a/refm/doc/spec/regexp19 b/refm/doc/spec/regexp19 index 1db48df4ba..d41263e62a 100644 --- a/refm/doc/spec/regexp19 +++ b/refm/doc/spec/regexp19 @@ -685,7 +685,7 @@ d,a,u のオプションは正規表現直後に置く方式では指定がで \s や \p{Space} のような文字クラスを使うのが良い場合も多いでしょう。 #@since 2.4.0 -=== 非包含オペレータ (実験的) +=== 非包含オペレータ (absence operator) (実験的) (?~式) という記法で、式にマッチする文字列を含まない任意の文字列にマッチします。 #@until 2.5.0 (Ruby 2.4.1 で更新された Onigmo に含まれる機能のため、Ruby 2.4.0 では使えません。)