回答編集履歴
3
追記
answer
CHANGED
@@ -12,4 +12,4 @@
|
|
12
12
|
Python側でいくらraw文字列指定をしても意味はありません。
|
13
13
|
|
14
14
|
むしろバックスラッシュはエスケープ処理に使われるので、
|
15
|
-
正規表現は "\?" あるいは r"?" にするとより丁寧でしょう。
|
15
|
+
正規表現は "\?" あるいは r"?" にするとより丁寧でしょう。後者がより好ましいです。
|
2
表現の修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"?report=select"という文字列まで出力されてしまいます。
|
3
3
|
|
4
4
|
仕様です。"hoge?piyo" でもマッチするでしょう。
|
5
|
-
re.matchは先頭一致、re.searchは部分一致を
|
5
|
+
re.matchは先頭一致、re.searchは部分一致を試行します。
|
6
6
|
|
7
7
|
アンカー ^ $ を併用するか、re.fullmatchを使って下さい。
|
8
8
|
|
1
追記
answer
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
> これで?pが含まれる文字列だけが出力されると思いきや、
|
2
2
|
"?report=select"という文字列まで出力されてしまいます。
|
3
3
|
|
4
|
-
仕様です。"hoge?
|
4
|
+
仕様です。"hoge?piyo" でもマッチするでしょう。
|
5
5
|
re.matchは先頭一致、re.searchは部分一致を検出できます。
|
6
6
|
|
7
|
-
アンカー ^ $ を併用するか、re.fullmatchを使って下さい。
|
7
|
+
アンカー ^ $ を併用するか、re.fullmatchを使って下さい。
|
8
|
+
|
9
|
+
> そこでRAW文字の検索なら出来るかと思い
|
10
|
+
|
11
|
+
?は正規表現中では特殊な意味を持ちますが、Pythonの文字列内ではただの文字です。
|
12
|
+
Python側でいくらraw文字列指定をしても意味はありません。
|
13
|
+
|
14
|
+
むしろバックスラッシュはエスケープ処理に使われるので、
|
15
|
+
正規表現は "\?" あるいは r"?" にするとより丁寧でしょう。
|