sakuraエディタの正規表現で
Windows(95|98)
Windows(?:95|98)
上記2つのコードの違いが判りません。
同じように Window95とWindows98が一致するだけな気がするのですが
詳しい違いの分かる方お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
投稿2018/02/10 03:34
退会済みユーザー
総合スコア0
0
ベストアンサー
グルーピング(グループ化)とキャプチャー(捕獲)という概念が理解できていれば
( )
はグルーピングとキャプチャーの二つの働きを持つ(?: )
はグルーピングの働きは持つがキャプチャーの働きは持たない
と表現できます。
キャプチャーは高コストなので,速度が問題になるような場合は,キャプチャーが不要なら ( )
を使わず (?: )
を使ったほうがいいですね。
投稿2018/02/10 14:27
総合スコア2108
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
何がマッチするかという点では変わりはありません。しかし、()でくくった部分を後で再利用する可能性があるかないかという点で違いがでてきます。
(?:...)は再利用できません。(...)は、sakuraではどうなっているのか知りませんが、多くの言語では後続のコードの中で$1などの形で参照可能になります。
$1, $2, $3, $4とたくさんのサブパターンを使いたい局面で、サブパターンとしての再利用の必要はないが(Hello)?のように量指定子のために「カッコでくくる」必要はあるという場合があります。こういうときに(?:...)を使うようにすれば、$nの管理がそれだけシンプルにできます。
投稿2018/02/10 04:44
総合スコア13671
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/10 13:02
2018/02/10 13:19
2018/02/10 13:25
退会済みユーザー
2018/02/10 13:47
2018/02/10 13:57
2018/02/10 14:29
2018/02/10 14:46
2018/02/10 15:06
2018/02/10 15:20
2018/02/10 15:40
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/10 03:39
退会済みユーザー
2018/02/10 03:45
退会済みユーザー
2018/02/11 13:28