私はそれについて約3時間検索してきましたが、今は立ち往生しています。問題は次のとおりです。
4. と 6. の文字だけが同じである 7 文字の単語を見つけたい
お気に入り:
^...(.).\1.$
でも見つけたくない
aaaBaBa
他のすべての文字は、次のように互いに異なる必要があります。
asdBfBg
私の質問は次のようなものです: Java: 各文字が 0-1 回出現する正規表現
しかし、ルックアラウンド(?<= および (?=, (?
私はそれについて約3時間検索してきましたが、今は立ち往生しています。問題は次のとおりです。
4. と 6. の文字だけが同じである 7 文字の単語を見つけたい
お気に入り:
^...(.).\1.$
でも見つけたくない
aaaBaBa
他のすべての文字は、次のように互いに異なる必要があります。
asdBfBg
私の質問は次のようなものです: Java: 各文字が 0-1 回出現する正規表現
しかし、ルックアラウンド(?<= および (?=, (?
これは機能するものですが、これを行うためのより良い方法があるかもしれません。
/
\b # word boundary
(\w) # any word char
(?!\1)(\w) # any word char except \1
(?!\1|\2)(\w) # any word char except \1 or \2
(?!\1|\2|\3)(\w) # etc...
(?!\1|\2|\3|\4)(\w)
\4 # 4th capture
(?!\1|\2|\3|\4\5)(\w)
\b # word boundary
/x
おそらく、次のように否定的なアサーションを使用できます。
^(.)(.)(.)(.)(.)\4(.)(?<!(?:\1.*\1|\2.*\2|\3.*\3|\4.*\4.*\4|\5.*\5|\6.*\6).*)$
これにより、4 番目と 6 番目の文字が同じで、1 番目、2 番目、3 番目、5 番目、または 7 番目の\6
文字 ( ) が 2 回出現せず、4 番目の文字が 3 回繰り返されていない 7 文字の単語が検索されます。