$s1='afa';
$s2='bebeeeb';
$s1=~/((\w)(?!\2))+\2?/;
この正規表現は、両方の文字列に一致します。 最初の文字列と一致させたい。 (最初の文字は任意の文字が続くなく、最初の文字は、キャプチャの2つの文字は、任意の回数繰り返すことができる。。)あなたはこれを試すことができこの文字列 'afa'の一致方法は? 'bebeeeb'はPerlと一致させないでください。
$s1='afa';
$s2='bebeeeb';
$s1=~/((\w)(?!\2))+\2?/;
この正規表現は、両方の文字列に一致します。 最初の文字列と一致させたい。 (最初の文字は任意の文字が続くなく、最初の文字は、キャプチャの2つの文字は、任意の回数繰り返すことができる。。)あなたはこれを試すことができこの文字列 'afa'の一致方法は? 'bebeeeb'はPerlと一致させないでください。
簡単反対側を確認してください。
# Doesn't contain repeated word characters.
$s !~ /(\w)\1/
そうしないと、すべての位置でを確認する必要があります。 (あなたが任意の位置でをチェックしました。)
# Every character is a non-word character or a non-repeated word character
$s =~ /^(?:\W|(\w)(?!\1))*\z/
を入力するだけで単語の文字を含めることができた場合は、上記のように簡単に
# Every character is a non-repeated word character
$s =~ /^(?:(\w)(?!\1))*\z/
あるいは
# Every character is a non-repeated character
$s =~ /^(?:(.)(?!\1))*\z/s
多分 '/^(?:(\ w)(?!\ 1)。)+ \ 1?$/'?最後に '\ 1?'が必要であるかどうか確信していません。文字列の末尾に最初の単語charがあってもよいようにパターンに追加しましたか? "任意の文字"が単語charを意味する場合、 '.'は' \ w'に置き換えられます。 –
ルールが何であるか、そしてなぜ2番目のルールがあなたが望むものではないのかはかなり不明です。ほんの少しの例(正と負)の助けを借りて、より明確に説明してください。 'dcdcdc'はOKでしょうか? 'dccc'はOKでしょうか? 'cdefg'はOKでしょうか? –
ニースの正規表現! https://xkcd.com/1313/ –