問題タブ [string-matching]

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 投票する
5 に答える
6622 参照

scala - Scalaでプレフィックス文字列の高速マッチングを行う方法

java.util.TreeSetを使用して高速プレフィックスルックアップを実行するためにいくつかのJavaコードを使用していますが、代わりにscalaのTreeSetを使用できますか?または別の解決策?

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

c# - C#:2つの文字列間で一致する部分文字列を削除する方法は?

2つの文字列がある場合..言う

string1="Hello Dear c'Lint"

string2="親愛なる"

..最初に文字列を比較し、一致する部分文字列を削除したい..
上記の文字列ペアの結果は次のとおりです。

「こんにちはクリント」

(つまり、 "Hello""c'Lint"の間の 2 つのスペース)

簡単にするために、string2 は string1 のサブセットであると仮定します.. (つまり、string1 には string2 が含まれます)。

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

regex - 文字列をトークンに分割し、区切り文字を Perl に格納する

次のような文字列があります。

文字列を次のように処理します。

文字列を元の空白で再結合したいと思います。分割から空白を保存して後で再利用する方法はありますか? それとも、これは大きな痛みになるのでしょうか?ほとんどは表面的なものですが、入力文字列の元のスペースを保持したいと思います。

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

php - 値の文字列を照合して配列キーを検索する方法

文字列に一致する配列でキー番号を見つけようとしています。

このようにarray_searchを試しました

しかし、それは$array[0]を出力します

これを行う別の方法はありますか?

ありがとう :)

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

php - パフォーマンスに関する文字列照合

SQLクエリが発行されるたびに次のチェックを実行する汎用DBクエリ関数があります。

  1. if (preg_match('~^(?:UPDATE|DELETE)~i', $query) === 1)
  2. if (preg_match('~^(?:UPDATE|DELETE)~iS', $query) === 1)
  3. if ((stripos($query, 'UPDATE') === 0) || (stripos($query, 'DELETE') === 0))

strpos()単純な呼び出しは、を実行するよりもはるかに高速であることを私は知っていますが、 2回preg_match()呼び出しているので、どちらがより良いパフォーマンスを発揮するかは本当にわかりません。strIpos()

2番目のオプションのSパターン修飾子も、マニュアルから、私の頭にいくつかの混乱をもたらします。

パターンを複数回使用する場合は、マッチングにかかる​​時間を短縮するために、パターンの分析に時間をかける価値があります。この修飾子が設定されている場合、この追加の分析が実行されます。現在、パターンの調査は、開始文字が1つ固定されていないアンカーされていないパターンにのみ役立ちます。

この場合、速度は重要ではありませんが(そうでない場合は、この汎用クエリ関数を使用しません)、単純さを維持しながら、可能な限り高速に実行したいと思います。

上記のオプションのどれを選択する必要がありますか?


編集:私は単純なベンチマークを実行しましたが、それでもどちらの方法がより効果的かを判断できません。

10,000回の試行の結果は次のとおりです(合計所要時間、秒単位)。

100,000回の試行

1,000,000回の試行

10,000,000回の試行

結果は大きく異なることがわかるように、これがベンチマークを実行する正しい方法であるかどうか疑問に思います。

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

python - Python での文字列マッチング

Pythonで実装されている文字列一致アルゴリズムを知っている人はいますか?

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

javascript - C strncmpと同等のJavaScript(文字列の長さを比較)

JavaScriptにC関数に相当するものはありますstrncmpか? strncmp2つの文字列引数と1つの整数length引数を取ります。2つの文字列を最大文字数で比較し、lengthそれらが可能な限り等しいかどうかを判断しlengthます。

JavaScriptには同等の組み込み関数がありますか?

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

regex - その他の文字列照合機能

5つのaと5つのbを持つすべての文字列に一致する正規表現を作成することは可能ですか?

aaaaabbbbbまたはabababababまたはaabbaabbabのように。

決定論的エンジンには多項式時間が必要だと思います。

そのようなマッチングを可能にする他のマッチング言語はありますか?

更新

こういう表現を使って検索したかったので、目的の表現に変えてみたら(?=b*ab*){5}(?=a*ba*){5}([ab]{10})うまくいきました!:)そのような表現のパフォーマンスについてはまだよくわかりません。しかし、私は先読みの表現を調べることができると思います。

説明は簡単だが正規表現が難しい他の種類のパターンがそこにあるのか、私はまだ興味がありますか?

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

java - 正規表現の作成を支援する

文字列がいくつかの異なる基準に一致するかどうかを知る必要があります。正規表現を使用してこれを解決し、それが一致するかどうかを確認しようとしています(Javaの場合:str.matches(myRegex);)が、正しく理解できません。

基準は次のとおりです。

  • 一致する文字列は4文字で構成されています[AZ]
  • 「-」、「+」、または「VC」のいずれかが前に付く場合があります(必ずしもそうとは限りません)。
  • 正確に4文字(および場合によっては前の文字)を含む文字列にのみ一致するものとします。

例:

  • 「SHSN」->一致
  • 「+SHRA」->一致
  • 「VCSHRA」->一致
  • 「CAVOK」->一致なし
  • "-+SHSN"->一致なし

これを1つの正規表現で実行することは可能ですか?それとも、コードで実行する必要がありますか、それとも2つの組み合わせで実行する必要がありますか?

ありがとう、

ライナス

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

java - luceneで使用される文字列照合アルゴリズム

ApacheLuceneで使用されている文字列照合アルゴリズムについて知りたいです。私はここで与えられたluceneによって使用されるインデックスファイル形式を調べてきました。luceneは、テキストに出現するすべての単語を、各ドキュメントで出現する頻度とともにそのまま保存しているようです。しかし、私が知る限り、効率的な文字列照合を行うには、ドキュメントに含まれる単語を前処理する必要があります。

例:「iamrohitbangaはstackoverflowのユーザーです」を検索します(あいまい一致を使用)

いくつかの文書で。

「rohitbanga」という文字列を含むドキュメントがある可能性があります

部分文字列rohitとbangaが検索文字列に存在することを見つけるために、いくつかの効率的な部分文字列マッチングを使用します。

それがどのアルゴリズムか知りたい。また、Java APIで関数呼び出しがトリガーする前処理を行う場合も、