問題タブ [regex-negation]
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.
regex - 正規表現を使用して、cat、dog、fish 以外のすべての空でない文字列をキャプチャするにはどうすればよいですか?
表現が複雑な場合、その表現が意味をなす理由を説明してください。
regex - 「html」が前に付いていない「wap」に一致する正規表現
NGINXを使用して、モバイルWAP/HTMLサイト間のモバイルトラフィックをセグメント化しています。これを行うための最良の方法は、HTTPAcceptヘッダーをチェックすることによってコンテンツに対するUAの設定をチェックすることであるように見えます。
WAPの優先順位は、ヘッダーの「html」またはワイルドカードmimetypeの前に「wap」mimetypeが表示されることで示されます。
したがって、SonyEricssonw300iはWAPを優先します。
そして、BlackberryBoldはHTMLを好みます。
私はNGINXの土地にいるので、私が持っている最高のツールはNGINXの正規表現(PCRE)のようです。
現在、負の先読みを使用して、「acceptヘッダーにはWAPが含まれていますが、HTMLが先行していません」と主張しようとしています。
しかし、これは正しくありません。この問題について私が考えることができる別の方法はありますか?または私のマッチングロジック?
これまでのところ、これらの正規表現リソースが役立つことがわかりました。
http://www.regular-expressions.info/completelines.html http://www.zytrax.com/tech/web/regex.htm http://wiki.nginx.org/NginxHttpRewriteModule
ありがとう!
回答ありがとうございます。関連するテストは次のとおりです。
php - リストになく、フレーズのリストにもないすべての文字を除外する
sin、cosなどの関数を含む、数式を評価する関数をPHPで作成しようとしています。私のアプローチは、フレーズ内の数値、数学演算子、または数学関数ではないすべての文字を削除することです。次に、その文字列を eval() で使用します。問題は、正規表現について、同じ表現内の文字と句の両方を否定するのに十分な知識がないことです。
これまでのところ、これは私が持っているものです:
明らかに、sin、cos、および tan の文字は、(sin、cos、および tanというフレーズのみを許可するのではなく) 入力式で任意の順序で使用できます。この関数をさらに拡張してさらに多くの文字や関数を含めると、悪意のあるユーザーがアプリとの巧妙なやり取りを通じてほぼすべての PHP コマンドを実行できるため、セキュリティ リスクがさらに大きくなります。
正規表現を修正してこの問題を解決する方法を誰か教えてもらえますか?
c# - 正規表現で最初の文字を設定するには?
最初の文字は、等号 ( =
) 以外であれば何でもかまいません。
次の正規表現を作成しました。
ab
b2
などは合格し、合格しませ=a
ん。
しかし、問題は、私も単一の文字を受け入れたいということです:
a
も受け入れる必要があります。どうやってやるの?
アップデート
なぜ私がそんなことをしているのか不思議に思うかもしれません。URL正規表現があります
(?!=)((www\.|(https?|ftp)://)[.a-z0-9-]+\.[a-z0-9/_:@=.+?,#%&~-]*[^.'#!()?, ><;])
=
しかし、URLが文字の直後にある場合、URLを解析したくありません。
regex - Negating Alternation In Regular Expressions
I can use "Alternation" in a regular expression to match any occurance of "cat" or "dog" thusly:
Is it possible to NEGATE this alternation, and match anything that is NOT "cat" or "dog"?
If so, how?
For Example:
Let's say I'm trying to match END OF SENTENCE in English, in an approximate way.
To Wit:
With the following paragraph:
The quick brown fox jumps over the lazy dog. Once upon a time Dr. Sanches, Mr. Parsons and Gov. Mason went to the store. Hello World.
I incorrectly find "end of sentence" at Dr., Mr., and Gov.
(I'm testing using http://regexpal.com/ in case you want to see what I'm seeing with the above example)
Since this is incorrect, I would like to say something like:
Of course, this isn't working, which is why I seek help.
I also tried !/(Dr.|Mr.|Gov.)/, and !~ which were no help whatsoever.
How can I avoid matches for "Dr.", "Mr." and "Gov.", etc?
Thanks in advance.
regex - 特定の正規表現を支援する-文字列を含まない
正規表現でどのように言うか:
大文字で始まり、少なくとも1つのスペース文字を含み、ストリング
" _ "
(スペースアンダースコアスペース)を含まず、ストリング「!!!」で終わるストリングの任意の部分。(引用符なし)?
「含まない」部分に問題があります。
これが私がこれまでに持っているものです:
これを変更して「'_'を含まない」も指定するにはどうすればよいですか?
特定の文字列「_」である必要はありません。文字列を「含まない」とはどうすればよいですか?たとえば、「犬」が含まれていませんか?
編集:ソリューションをPhpの「preg_replace」と互換性があるようにしたい
編集:例:
「_」の例:
Abc xyz !!! <---一致
こんにちは世界!!!<---一致
_スペースアンダースコアスペースがあります!!! <---一致しません
「犬」の例:
なんて犬だ!<---一致しません(「犬」を含む)
こんにちは世界!!!<---一致
regex - 複雑な手作業で編集せずに、正規表現をそれ自体の補完に変えるにはどうすればよいですか?
以下は疑似的な例であり、実際の正規表現ではありませんが、それでも私が意味するものの例です。
編集:質問の逆を補体に変更しました。ここで変更が行われました:「正規表現をそれ自体の補完に変える」
.net - 正規表現の否定
.Netを使用しています。az、AZ、スペース、一重引用符以外の文字を含む姓を一致させたいので、文字の長さは1〜40の間であってはなりません。一致させる必要のある文字列は、次のようなXMLです。<FirstName>SomeName</FirstName><LastName>SomeLastName</LastName><Address1>Addre1</Address1>
regualr式を作成しましたが、これは
[a-zA-Z'。\s] {1,40}に <LastName>[a-zA-Z'.\s]{1,40}</LastName>
のみ一致します。EDIT :LastNameタグがありません。しかし、私はこの表現の否定を得たいと思います。それは可能ですか、それとも別のアプローチを取るべきですか?
.net - XML文字列で正規表現の否定が機能しない
.Net で正規表現に否定を適用しようとしています。それは動作しません。文字列に有効な姓がある場合、正規表現は一致してはなりません。姓が無効な場合は、一致する必要があります。有効な名前には、文字、スペース、一重引用符、および 1 ~ 40 の長さのみを使用できます。誰かが XML を解析することを提案しましたが、私はそうしたくありません。正規表現で否定を削除し、コードで一致条件を反転することで、これを行う別の方法があることを知っています。しかし、私もそれを望んでいません。これには純粋な正規表現ソリューションが必要です。
これが私のコードです。それは有効な姓と一致します。でも合わせたくない。
編集:ここで混乱があります。私が意図した例をいくつか挙げましょう。姓が有効な場合、正規表現は一致しないはずです。たとえば、以下のサンプルは正規表現と一致しないはずです
ケース1
ケース 2
ケース 3
姓が無効な場合、正規表現は一致する必要があります
ケース4
ケース5
ケース6
さらに情報が必要な場合はお知らせください
regex - 一致する末尾の否定の正規表現
特定の用語で終わらない文字列に一致する正規表現が必要です。
Foo
入力は、FooImpl
、FooTest
、FooTestSuite
、 などのクラス名の集まりです。
Test
、Tests
、またはで終わらないものと一致させたいTestSuite
。
一致する必要があります:
FooImpl
FooTestImpl
Foo
一致しない:
FooTest
FooTestSuite
FooTests
私はこれを正しく理解できません。私が今持っているものは間違っているので、わざわざ投稿することさえしません。