現在、入力文字列に繰り返し文字がある場合はtrueを返し、それ以外の場合はfalseを返します。可能(コードゴルフのチャレンジのため)。私は正規表現では非常に良好ではないんだけど、私は、これはトリックを行うだろうと思った:(.)
は任意の文字と\\1
ある正規表現の繰り返し文字(\ 1は機能しません)
(.)\\1
は、正規表現の最初の部分で見つかった試合への参照です。
しかし、「1223
」私は入力のためにそれをしようとした場合、それは動作しません:私は理由22
の真の期待していながら
public static void main(String[] a){
System.out.println(java.util.regex.Pattern.matches("(.)\\1", "1223"));
}
これは、falseを返します。
java.util.regex.Pattern.matches
などを使用して正規表現を修正する方法を知っている人はいますか?コードゴルフですか? ;)全体列はregex
に対応
Here is an ideone for the test.
codegolf.seを使用してください。 – Hackerdarshi
'.matches'には完全な文字列の一致が必要です。' "。*(。)\\ 1。*" 'を使用してください。あるいは 'Matcher.find()'であなたのものを使用してください。 –
@WiktorStribiżewああ、それは私の問題です!ありがとう。あなたが望むなら、それを答えとして加えることができます。私は、それが私の誤解を '.matches'としていることを知っていました.. –