問題タブ [pcre]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP PREG Regex:UTF-8修飾子を使用する場合、「\ W」はどういう意味ですか?
通常のphp正規表現(ASCIIモード)では、「\ w」(単語)は「文字、数字、および_」を意味することを知っています。しかし、「u」修飾子でマルチバイト正規表現を使用している場合、それはどういう意味ですか?
php - 正規表現後方参照
次の正規表現を持つ:
に一致しますが、、などa5a
にも一致する方法はありますか?a5b
a5c
a5d
編集:わかりました、使用できることは理解しています([a-z])([0-9])([a-z])
が、非常に長くて複雑な正規表現 ( sub-sub-sub-...-domains に一致するか、IPv4 アドレスに一致する) は、上記の動作から本当に恩恵を受けます。 . 後方参照などでそれを達成することは何とか可能ですか?
アノン。答えは私が必要とするものですが、間違っているようです。
php - 正規表現: \w - UTF-8 の「_」+「-」
UTF-8 の文字と数字、ダッシュ記号 ( -
) に一致する正規表現が必要ですが、アンダースコア ( ) には一致しません_
。これらの愚かな試みを試みましたが成功しませんでした。
([\w-^_])+
([\w^_]-?)+
(\w[^_]-?)+
はの\w
省略形ですが、修飾子が設定され[A-Za-z0-9_]
ている場合は UTF-8 文字にも一致します。u
誰でもこれで私を助けることができますか?
regex - PCRE正規表現からsed正規表現
まず第一に私の悪い英語をお詫びします。私はドイツ人です。
以下に示すコードは、PHPで正常に機能しています。
今Tはのために同じ必要がありsed
ます。私はそれがすべきだと思った:
しかし、それは私にこのエラーを与えます:
sed:-e式#1、char 36:`s'コマンドのRHSの参照\1が無効です
php - PHP PCRE (正規表現) は UTF-8 をサポートしていませんか?
サイトで正規表現を実行しようとしていますが、次の応答が返されます。
コンパイルに失敗しました: \P、\p、および \X のサポートがオフセット 1 でコンパイルされていません
少しグーグルで調べたところ、どうやらサーバー上の私の PCRE が UTF8 に対応していないため、問題が発生していることがわかりました。pcretest -CI get で ssh すると
PCRE バージョン 6.6 2006 年 2 月 6 日
UTF-8 サポートでコンパイル Unicode プロパティのサポートなし 改行文字は LF 内部リンク サイズ = 2 POSIX malloc しきい値 = 10
デフォルトの一致制限 = 10000000
デフォルトの再帰深度制限 = 10000000 一致再帰はスタックを使用
yum update pcre を実行すると、更新するものがないと表示されます。
UTF-8 サポートをオンにできると人々から言われています...助けてくれませんか?
私は初心者です。
php - アクセント付き文字をPHPpregと一致させるにはどうすればよいですか?
文字や数字だけでなく、「á」や「é」などの「特殊な」文字も入力できるようにしたいのですが、記号を使わないようにしたいと思います。 「!」、「@」、「%」など。
これを達成するために正規表現を書く方法はありますか?(できれば、それぞれの特殊文字を指定せずに。)
今私が持っています:
php - PHP 正規表現パターンで追加のバックスラッシュが必要
別のユーザーの質問に対する回答をテストしているときに、理解できないものを見つけました。\t
\n
\r
問題は、文字列のすべてのリテラル文字を単一のスペースに置き換えることでした。
さて、私が最初に試したパターンは次のとおりです。
驚くほどうまくいきませんでした。Perl で同じパターンを試したところ、うまくいきました。試行錯誤の結果、次のように、パターンに一致させるために PHP が 3 つまたは 4 つのバックスラッシュを必要としていることがわかりました。
また
これらのパターン - 驚いたことに - 両方とも機能します。これらの余分なバックスラッシュが必要なのはなぜですか?
php - preg_match_all の UTF-8 文字 (PHP)
私は持っているpreg_match_all('/[aäeëioöuáéíóú]/u', $in, $out, PREG_OFFSET_CAPTURE);
場合$in = 'hëllo'
$out
:
の位置はo
4 である必要があります。この問題についてオンラインで読みました (ë
取得は 2 としてカウントされます)。これに対する解決策はありますか?と似たようなのを見mb_substr
たことがありますが、こんなものはありpreg_match_all
ますか?
preg_match_all
一種の関連: それらは Pythonと同等ですか? (文字列内の位置と一致する配列を返す)
php - 正規表現 "/^something/" の動作
いくつかのあいまいな状況では、「/^match/」のような正規表現は、「何か他のもの」である行に一致する正反対の方法で機能し、それを修正する唯一の方法は、正規表現全体を中かっこの中に入れることです... "/ ^(match)/」、どうしてこうなった?