文字列を正規表現に渡す方法はありますか?
たとえば、 "n"と "h +"を明確にする必要があるため、 "north + west"で始まる行を見つけることはできません。そこで、テキストをそのまま記述する特別な組み合わせはありますか?
/^s+(<some special combination> north+west)s+/i
それとも、私のテキストを適切に抽出できる機能を知っていますか?
回答:
回答№1は1PHPおよびPerlでは、使用できます Q...E
正規表現内のメタ文字を自動エスケープする区切り文字。引用 ドクター:
Q
そしてE
パターン内の正規表現メタ文字を無視するために使用できます。 例えば:w+Q.$.E$
1つ以上の単語文字と一致します。 リテラルが続く.$.
そして、文字列の最後に固定されています。
回答№2の場合は0
に加えて @ raina77ow回答、パターン区切り文字を必要とするPHPなどの言語を介してpcreを使用する場合、「使用できません」 Q...E
文字列に開始または終了の区切り文字が含まれている場合の機能。たとえば、次のようなパターンを書くことはできません。
/Qabc/defE/
~Qabc~defE~
[Qabc[defE]
[Qabc]defE]
(Qabc)defE)
(Qabc(defE)
唯一の方法は preg_quote
関数と区切り文字を配置する (これが既に特別な正規表現文字でない場合のみ) 2番目のパラメーター。