問題タブ [alternation]

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.

0 投票する
3 に答える
1080 参照

regex - 正規表現は怠惰な振る舞いをしている、貪欲であるべき

デフォルトでは、私の正規表現は私が望む貪欲な動作を示すと思いましたが、次のコードにはありません:

出力:

単純にキーワードを長さの降順で並べ替えれば、この小さな例でも機能することがわかりましたが、

  • これが期待どおりに機能しない理由を理解したいのですが、
  • 私が取り組んでいる実際のプロジェクトでは、正規表現にさらに多くの単語が含まれており、それらをアルファベット順に保つことが重要です。

だから私の質問は、なぜこれが怠惰なのか、どうすれば修正できるのか?

0 投票する
6 に答える
51399 参照

android - AndroidのオプションメニューでMenuItemを変更するにはどうすればよいですか?

「スタート」のActivityあるオプションメニューがあります。MenuItemこれを選択したら、 「停止」MenuItemが含まれるようにメニューを変更したいと思います。MenuItemそして最後に「停止」を選択したら「開始」に戻したいと思います。

これが私のコードの機能していない部分です。「開始」と「停止」の両方がリストされmymenu.xmlています。メニューが作成されたら、おそらく「停止」を削除する必要があります。

0 投票する
2 に答える
299 参照

regex - 順序付けられた代替を含む正規表現は、順序付けられていない代替のみを使用するように書き直すことができますか?

リテラル、正と負の文字クラス、順序付けられた代替、貪欲な量指定子?*、および+、および非貪欲な量指定子??、 、および をサポートする正規表現言語がある*?とし+?ます。(これは基本的に、後方参照、ルックアラウンド アサーション、またはその他のより複雑な部分を含まない PCRE のサブセットです。) 順序付けられた交互を順序付けられていない交互に置き換えると、この形式主義の表現力が低下しますか?

(順序付けられていない交替 --- 「順序付けられていない選択」とも呼ばれる --- は L(S|T) = L(S) + L(T) であり、順序付けられた交替は L(S|T) = L である) (S) + (L(T) - { L(T) の a : a が L(S) の b を拡張する }). 具体的には、パターンは文字列とa|aa一致し、交互が順序付けられていない場合にのみ、交互が注文しています。)aaaa

別の言い方をすれば、順序付けられた交替を含むパターン S が与えられた場合、そのパターンを、順序付けられた交替を含まない同等のパターン T に書き換えることができますか (ただし、代わりに順序付けされていない交替が含まれる可能性があります)。

この質問が文献で検討されている場合は、誰でも提供できる参考文献をいただければ幸いです。拡張正規表現形式の表現力に関する理論的な研究はほとんど見つけることができませんでした (後方参照がどのように通常の言語から文脈自由文法に移行するかについての通常の事柄を超えて)。

0 投票する
4 に答える
364 参照

php - 正規表現に優先順位を付ける方法| (または)式?

0 投票する
2 に答える
707 参照

javascript - 2つの要素を使用したJqueryトグル

これは私のスクリプトです。スライド メニューをアニメーション化できるようにトグルを使用しています。

ページ上の2つの要素を使用して動作させるには、トグルが本当に必要ですが。たとえば、以下を参照してください...

要素1が最初にクリックされた場合、最初のクリックで要素2を使用してメニューを閉じることができるので、それが必要です。現在起こっていることは、メニューを閉じるために要素 2 を 2 回クリックする必要があるということです。逆の場合も同様です。

これがトグルの出番だと思います。どんな助けでも大歓迎です。

乾杯ジョシュ

0 投票する
1 に答える
434 参照

javascript - jQueryのセカンドクリック交代が機能していませんか?

http://jsfiddle.net/motocomdigital/uTV5k/18/

クリックの代わりにトグルを使用して更新しましたが、それでもスムーズな交代を取得することはできません。

ここにjavascriptとjqueryを組み合わせています。

要素を取得しようとしているので、クリックするとアニメーションが実行されます(開く)。2回目のクリックで、アニメーションは開始点(閉じる)まで実行されます。

しかし、何らかの理由で、2回目のクリックの交互操作を機能させることができません。誰かが私が間違っていることについてアドバイスできますか?ありがとう

これ$('.home-module').toggleは私が問題を抱えているビットです。

以下のスクリプトを参照してください...

アニメーションへのクリックでは本当に反応がないようで、2回目のクリック/交代は本当に遅れて奇妙なことをしますか?

ありがとう


私の元のコード...

0 投票する
2 に答える
741 参照

javascript - オンクリックで2回実行

http://jsfiddle.net/uTV5k/19/

こんにちは、

モバイル サイトで以下のスクリプトを使用しています。シミュレートされたスクリプトとマークアップの jsfiddle を参照してください。

以下のスクリプトはまさに私のモバイル サイトにあるもので、js フィドルはその複製です。

jsfiddle では、クリックの切り替えは正常に機能します。最初のクリックでアニメーションが開き、2 回目のクリックでアニメーションが閉じます。

私のモバイルサイトの問題は、最初のクリックでアニメーションが開き、2 回目のクリックなしですぐに 2 番目のアニメーションが実行されることです。しかし、フィドルでは問題なく動作します。




なぜこれが起こるのか、私には本当にわかりません。iScroll でこれを使用しても問題は発生しませんか?

前もって感謝します

0 投票する
1 に答える
324 参照

java - Javaの正規表現と代替の問題

正規表現を機能させるのに問題があります。特定のXMLタグのテキストの大きな複数行のブロックを解析しようとしています。これをXMLライブラリで解析しない理由は、実際にはESQLのブロックの一部でもあるためです。私が使用している行は次のとおりです。

私の問題は実際には2つあります。

  1. (Invoice|Package|Mapping|Post)リストから請求書を削除しない限り、セクションは請求書にのみ一致します。次に、マッピングのみに一致します。奇妙なことに、Packageはテキストブロックの中央にあり(ブロックはInvoice, Package, Mapping, Postテキストファイルで順序付けられており、Postはオプションであるため、そこにない場合もあります)、マッピングは終わりに近づいています。

  2. <(ESQL|ProcessInvoice)>セクションは実際にブロックを取ります(最後のブロック、最後のProcessInvoice3ブロックを超え<ESQL>ます)。(ESQL|ProcessInvoice)パーツを取り外してそのまま作成<ESQL>すると、奇妙なことに、請求書の最初のブロックではなく、Packageブロックが使用されます。これは、これを以前の4つのセクションの1つ(つまり、ちょうど)に絞り込んでも、どこにも変更がない場合でも、引き続き問題になりますInvoice。最初のセクションをスキップして、2番目のセクションを取得します。

私は正規表現の第一人者ではないことを認めますが、これはかなり奇妙な行動のようです。マッチャーで.reset()を呼び出しても、以前のブロックは認識されません。また、.find()は、可能なすべての一致を繰り返すのではなく、1つの一致のみを検索します。

---補遺---次の入力例(コンテンツ用に編集):

意図するグループ化は(それぞれ)次のようになります。

  1. 請求書
  2. パッケージ
  3. マッピング

そしてデータ:

  1. ESQLブロック1ESQLブロック2
  2. ESQLブロック3
  3. 別のESQLブロック

を説明するために、正規表現を少し変更したことに言及する必要があります。これは次のようになります。

この交代は、4つの可能なセクションのうちの3つで機能しているようですが、以前の問題の一部は、<(ESQL|ProcessInvoice)>別のグループ内で使用しようとしたことだったと思います。せずにやろうとする<Rule>(.+?)</Rule>.*?と、代わりに(<ESQL>.+?</ESQL>)今は働きたくないだけです。

0 投票する
4 に答える
333 参照

regex - 入力がパターンからのOK部分文字列かどうかをテストするための正規表現

基本的に、次のような正規表現がある場合

私はそれが成功することを望みます

しかし、その後のようなもので失敗します

頂いた回答の一部は承知しておりましたが、

また

そして、それらは機能しますが、この特定のケースでは、それは私がむしろ行きたい方法ではありません。これが 20 の長い単語に拡張されると、管理できなくなります。可能であれば、よりエレガントなソリューションが欲しいです。

エレガントなアイデアはありますか?私が使用している場所では、RegExではなく文字列のリストを渡し、入力のインデックスが文字列のいずれかで0であるかどうかを確認できますが、できる方法があるかどうかを確認したかっただけです正規表現でそれを行います。

すべての回答に感謝しますが、私はほとんどの場合、可能な限り「エレガントな」ソリューションを探していますが、調べてみると、解決策があるかどうかわかりません。

基本的には強制入力防止です。私が望んでいたのは、Dojo の ValidationTextBox ( http://dojotoolkit.org/reference-guide/1.7/dijit/form/ValidationTextBox.html ) に似たものでした。そこで、入力が検証パターンと一致しない場合はできるだけ早く通知します(私は...そうするかもしれません)が、正しい入力とそのパスのみを許可したいと思います.

言い換えると、入力文字列を同じ長さのパターンに対してのみチェックできるかどうかを確認するエレガントな方法があるかどうかを調べようとしていました。

この場合、2 つの文字、

等々。

私の具体的な答えは正規表現による代替に関するものですが、正規表現全般についてこれを知りたいです(私が読んだことから、それは可能ではないようです)。

つまり、もしあなたが持っていたら、

すべての人にとってテストが成功する方法が欲しい

0 投票する
2 に答える
885 参照

regex - 1 つの検索語の後で、他の 2 つの検索語のうちの 1 つの前 (どちらか早い方) にデータを収集するための正規表現

次の要件を持つ正規表現を作成する必要があります。

与えられたサンプル テキスト:

find this textエリアに出現する文字列を抽出したい

SEARCH_TERM_#1正規表現は、 uptoの後にデータを収集する必要がありSEARCH_TERM_#2ますSEARCH-TERM_#3。#2 と #3 のうち最初に見つかったものを「右側」の検索境界として選択する必要があります。

私は試してみまし(?>SEARCH_TERM_#2|SEARCH_TERM_#3) (?=(?>SEARCH_TERM_#2|SEARCH_TERM_#3))(?>(?=SEARCH_TERM_#2)|(?=SEARCH_TERM_#3))。そして、それらはすべて、収集されたデータに 2 番目の検索用語を含め、3 番目の前に停止しますが、収集されたデータは、最初に来る #2 または #3 の前に停止したいと考えています。