回答編集履歴
1
補足を追加
answer
CHANGED
@@ -1,3 +1,6 @@
|
|
1
1
|
否定先読みは、**位置にマッチする**のであって、文字にはマッチしないんです。
|
2
2
|
|
3
|
-
たとえば、ひとつめのパターンは、「`https://example.com//`」と「`http://exapmle.com//`」にしかマッチしませんが、たぶん意図しているのは違うものですよね? `(?!xx)`は「xxが書かれていない位置」にマッチするのであって、そこに書かれている文字をマッチさせたかったら、続けて`[^/]+`みたいな「文字(列)とマッチするパターン」を続けて書かないといけません。
|
3
|
+
たとえば、ひとつめのパターンは、「`https://example.com//`」と「`http://exapmle.com//`」にしかマッチしませんが、たぶん意図しているのは違うものですよね? `(?!xx)`は「xxが書かれていない位置」にマッチするのであって、そこに書かれている文字をマッチさせたかったら、続けて`[^/]+`みたいな「文字(列)とマッチするパターン」を続けて書かないといけません。
|
4
|
+
|
5
|
+
追加分:
|
6
|
+
ふたつめのパターンのように`com/(?!xx)(?!?q=)`と並べて書くと、これは「/」の直後が「xxが書かれていない位置」で、なおかつ「?q=が書かれていない位置」のときにマッチするということになります。おそらくこれも意図しているものとは違いますよね。
|