2

正規表現を使用する必要があるたびに、正規表現についてすべてを忘れていることに気づきます。

小文字の英数字のみを含み、2 つの英数字を含まず、長さが {10,12} 文字以内のすべての単語を一致させようとしています。

さて、文字の後に同じ文字が続くかどうかを調べるには、(.)\1. 単語が 10 ~ 12 文字以内かどうかを確認するには、{10,12}. 小文字と数字だけを取得するには、[0-9a-z].

しかし、どうすればそれらをリンクできますか?

乾杯!

PS: これはかなり大きな NLP xml (100 mb 以上) で実行されるため、正規表現が最も遅い代替手段ではない場合に感謝します。

4

3 に答える 3

3

私はこれがあなたが望むことをすると思います: -

/\b(?:([a-z0-9])(?!\1)){10,12}\b/

説明: -

\b   // Word boundary
(?:
    ([a-z0-9])  // Match lowercase letters or digit
    (?!\1)      // Not followed by the same digit as before
){10,12}        // 10 to 12 times.
\b   // Word boundary
于 2013-01-31T19:58:43.457 に答える
2

これが1つですが、より良い方法がないかどうかはわかりません...

/\b(?:([a-z0-9])(?!\1)){10,12}\b/
于 2013-01-31T20:00:12.327 に答える
1

これが私の試みです:

 (\b(?![0-9a-z]*([0-9a-z])\2)[0-9a-z]{10,12}\b)

(先読みを使用する必要があり、適切に機能するためには通常、ある種の境界が非常に重要です。したがって\b)。

執筆時点では、別の回答に誤検知がありeoeuaoarounn

于 2013-01-31T20:01:48.837 に答える