文字のリストのみで形成された単語を照合するための正規表現

エドゥアルド・アルーダ・ピメンテル

単語のセットが与えられた場合、どの単語が文字のセットによってのみ形成されるかを知る必要があります。この文字が検証セットの一部であっても、この単語に許可されている文字数を超える文字を含めることはできません。

例:

Char set: a, a, ã, c, e, l, m, m, m, o, o, o, o, t (fixed set)

Words set: mom, ace, to, toooo, ten, all, aaa (variable set)

結果:

mom = true
ace = true
to = true
toooo = true
ten = false (n is not in the set)
all = false (there is only 1 L in the set)
aaa = false (theres is only 2 A in the set)

Javascriptでこの正規表現を生成する方法は?(大文字と小文字は区別されません)。

私はこのコードを試しましたが成功しませんでした:

var str = "ten"
var patt = new RegExp("^[a, a, ã, c, e, l, m, m, m, o, o, o, o, t]*");
console.log(patt.test(str));
Pushpesh Kumar Rajwanshi

このタスクは、正規表現を使用せずにコードを作成する方が適していると思いますが。しかし、私が考えることができる1つのアプローチは、うまくいくはずですが、ネガティブな先読みを使用することです。

例として文字セットを取り上げましょう。許可される単語には次の文字を含めることができ、リストにある量を超えないようにする必要があります。

a, a, ã, c, e, l, m, m, m, o, o, o, o, t

負の先読みを使用して、各文字に設定されている上記のように許可されているよりも多くの文字を含む文字列を破棄し、最後に1〜​​N文字の許可された文字セットを使用して単語をキャプチャする次の正規表現を記述できます。ここでNは総数です。文字の。

^(?!([^a]*a){3})(?!([^ã]*ã){2})(?!([^c]*c){2})(?!([^e]*e){2})(?!([^l]*l){2})(?!([^m]*m){4})(?!([^o]*o){5})(?!([^t]*t){2})[aãcelmot]{1,14}$

説明:

  • ^ -文字列の開始
  • (?!([^a]*a){3})-この負の先読みは、セット内のa総数aが2つしかないため、文字列内のが3以上の場合、入力を拒否します
  • (?!([^ã]*ã){2})-同様に、この負の先読みはã、設定された合計数がã1つしかないため、文字列内のが2以上の場合、入力を拒否します
  • など、すべてのキャラクターについて
  • [aãcelmot]{1,14}-この文字セットは、許可された文字を少なくとも1つから最大14までキャプチャしますが、許可された文字の+最大数のチェックはすでに負の先読みを使用して行われているため、単純に書き込むこともできます。
  • $ -文字列の終わり

JSコードデモ、

const arr = ['mom','ace','to','toooo','ten','all','aaa']

arr.forEach(x => console.log(x + " --> " +/^(?!([^a]*a){3})(?!([^ã]*ã){2})(?!([^c]*c){2})(?!([^e]*e){2})(?!([^l]*l){2})(?!([^m]*m){4})(?!([^o]*o){5})(?!([^t]*t){2})[aãcelmot]{1,14}$/.test(x)))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

単語と単語以外の文字のみを照合するためのRの正規表現

単語全体を照合するためのGlib正規表現?

次の括弧なしで角括弧で囲まれた単語を照合するための正規表現

特定の文字で形成された単語の正規表現

2つの数値の間で文字のリストを照合するための正規表現

文字列をスペースや単語と照合するための正規表現

VBAで特殊文字を含む単語全体を照合するための正規表現

すべてを特定の単語と照合するための正規表現

数字と定義された単語を除くすべての文字を照合するための正規表現

テキスト内の20単語の距離内で4単語を照合するための正規表現

特定の単語を除く文字列を照合するための正規表現

ライブ検索を行うために任意の順序で単語を照合するJquery +正規表現スクリプト

数値のリストを照合するための正規表現

C#正規表現:テキスト行のみの中間単語内の文字列を照合するにはどうすればよいですか?

指定されたパスレベルでページURIを照合するためのGoogleAnalyticsの正規表現

Javaで複数の単語を照合するために正規表現を使用する方法

文字列を照合するための正規表現

MongoDB文字列を照合するための正規表現

HTML文字列を照合するための正規表現

単語が見つかるまですべてを照合するための正規表現

Pythonでアポストロフィを含む正確な単語を照合するための正規表現?

検索された値を照合するための正規表現

文字列内の2つの同じ文字の最初の文字のみを照合するための正規表現

aからzまでの小文字のみを照合するための正規表現

ネストされた括弧内の単語を抽出するための正規表現

MySQLの正規表現で文字列内の単語を照合する関数

抽出された文のすべての単語を正規表現で組み合わせる方法は?

スキーマのネストを照合するための正規表現

Pythonで非空白を照合するための正規表現

TOP 一覧

  1. 1

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  2. 2

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  3. 3

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    画像変更コードを実行してもボタンの画像が変更されない

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  11. 11

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  12. 12

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  13. 13

    二次導関数を数値計算するときの大きな誤差

  14. 14

    値間の一致を見つける最も簡単な方法は何ですか

  15. 15

    androidsoongビルドシステムによるネイティブコードカバレッジ

  16. 16

    Reactでclsxを使用する方法

  17. 17

    How to access json value by key value in freemarker?

  18. 18

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  19. 19

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  20. 20

    Using Angular's UI-router, how can we make sure the new version of the html partial views are used, rather than the cached version?

  21. 21

    symfonyエラーサーバーが404NotFoundを返しました

ホットタグ

アーカイブ