問題タブ [word-boundary]
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.
objective-c - 正規表現での \b と \\b の比較
正規表現のドキュメントでわかるように、 \b は単語の境界に一致します。ひもを用意します
"db bd 方法"
と正規表現
\b(a|b)(c|d)\b
正規表現を実行すると、文字列の「bd」と一致するはずですが、一致しません。
しかし、正規表現が
\\b(a|b)(c|d)\\b
一致します。
違いを説明できますか?
javascript - 単語アトム「\<」と「\>」のVim正規表現の開始と終了に相当するJavaScriptはありますか?
\b
JavaScriptの正規表現エンジンを含め、ほとんどの正規表現エンジンは、単語の先頭でも末尾でも、単語の境界と一致する必要があることを知っています。
しかし、Vimにはさらに2つの特定の正規表現アトムがあります。
JavaScriptにはこれらのアトムと同等のものがありますか?そうでない場合は、より正確なセマンティクスを他の方法で表現する方法はありますか?
regex - 先読みと「。」で単語の境界を許可する正規表現。
私は文字列を持っています:
現在、正規表現[[:<:]]Outer.Middle[[:>:]]
を使用して文字列#2のみを照合しようとしています。ただし、これは単純な境界のため、文字列#1と#2の両方に一致します。
私はある種の先読みをしようとしまし[[:<:]]Outer.Middle(?!.)[[:>:]]
たが、これはひどく間違っています。
PostgreSQLを使用していて、テキスト本文に含まれるクラス名をクエリしているので、正規表現が必要です。
任意の解決策または解決策へのガイダンスをいただければ幸いです。
php - 正規表現の単語境界の代替
標準の\b
単語境界を使用していました。ただし、ドット (.) 文字を希望どおりに処理することはできません。
したがって、次の正規表現:
\b(\w+)\b
という文字列がある場合は、cats
anddogs
に一致します。cats.dog
cats and dogs don't make cats.dogs
次の場合にのみ、単語全体に一致する単語境界の代替が必要です。
- ドット (.) 文字が含まれていない
- 両側に少なくとも 1 つのスペース ( ) 文字でカプセル化されている
何か案は?!
PS PHPにはこれが必要です
php - MongoDBRegExエンジンの完全性
Mongoのドキュメントによると、PCREエンジンを使用しており、PCREはUnicode文字に対して\bと\wをサポートしていますが、正規表現に従うとUnicode文字列と一致しません。解決策や代替構文はありますか?
java - 先頭/末尾の英数字以外の文字を拒否する単語の境界
現在、Javaで正規表現を学習していますが、単語の境界について質問があります。したがって、Java正規表現で単語の境界を探すと、単語以外の文字で囲まれた単語を受け入れる\ bが得られたため、この正規表現
\b123\b
はこの文字列を受け入れます123 456
が、拒否し456123456
ます。!$@#@%123^^%$#
今、私はその単語のような条件が"123"
上記の正規表現によって受け入れられていることを発見しました。上記の例のように、英数字以外(スペースを除く)で囲まれた単語を拒否する単語の境界/パターンはありますか?
php - PHP の単語境界
PHP では、文字の前後の分音符号\b
が単語の境界 ( ) を作成しますが、これは望ましい動作ではありません。他のプログラミング言語の中では普通ですか?\b
(ほとんどの言語でとに問題があることは知っています\w
) この問題を効果的に解決するにはどうすればよいですか?
Unicode の観点から、どの Unicode カテゴリが単語の境界を作成しますか?
それは例です:
regex - 非スペーシング (MNS) Unicode カテゴリと \b をマーク
PCRE では non-spacing mark characters
、ワード境界が発生します。結果として、Åström
文字列には 2 つの\b
位置があり、Åström
(分解された文字) には 6 つ\b
の位置があります。それは意図された動作ですか、それとも不適切な実装ですか?
python - 行末のドットと単語の境界
私はこの正規表現を持っています:
一致する
- abc
- abc
- abc何か
- ...
重要度の高い順に 2 回使用します。まず、上記のケースとまったく同じ文字列を見つけたいので、行の最初と最後に^
追加しようとします。$
何も見つからない場合、制約は削除され、次のような文字列を受け入れました
- フー abc フー
- 何とかabc何とか何とか
問題は、最初のケースでa.b.c.
あり\b
、$
. だから私が使用する場合
a.b.c.
丸括弧内の部分が「無視」され\b
ており、に近い部分に$
は理解できない動作があるため、単純なものは一致しません。一方a.b.c
(最後のドットなし)は一致します
秒を変更する\b
と\W
すべてが機能しますが、他の不要な文字列と一致するかどうかはわかりません。正規表現を 1 つだけ使用してこれを解決する方法についてのアイデアはありますか?
これが関連する可能性がある場合、私はPythonを使用しています
java - java \bword\B の正規表現はどのメタ文字が勝つ?
Javaで正規表現を使用\bword\B
するように動作することを認識しています。word\B
(マッチングエンジン的に)
なぜそれが可能でしょうか?例外(構文例外)だった方が合理的ではないでしょうか。さらに、このチュートリアルでは、オラクルでも説明の例として使用されています ( \bdog\B
)。答えがわからない場合は、お気軽に応答しないでください。前もって感謝します。