/ / RegExp:暗号化せずに文字列を正規表現に渡す方法はありますか? -正規表現、pcre

正規表現:正当化せずに正規表現に文字列を渡す方法はありますか? - 正規表現、pcre

文字列を正規表現に渡す方法はありますか?

たとえば、 "n"と "h +"を明確にする必要があるため、 "north + west"で始まる行を見つけることはできません。そこで、テキストをそのまま記述する特別な組み合わせはありますか?

/^s+(<some special combination> north+west)s+/i

それとも、私のテキストを適切に抽出できる機能を知っていますか?

回答:

回答№1は1

PHPおよび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番目のパラメーター。