0

1つまたは複数のドットで区切ることができる英数字と一致させたい:

  1. バーティ
  2. bert.123
  3. bert.01.03.27

だがしかし :

  1. .bert (ドットは区切られていません)
  2. bert123. (ドットは分離していません)
  3. bert...123 (複数の連続するドット)

今、私はこれ^[^\\.][\w\.]+?[^\\.]$を持っていますが、ドット文字の複数の連続した出現をまだ処理できません。

4

5 に答える 5

2

あなたが欲しいのは^\w++(\.\w++)*$

少なくとも 1 つの英数字の後に、任意の数の 1 つのドットのみの任意の数のグループが続き、その後に少なくとも 1 つの英数字が続きます。

于 2013-11-08T09:59:01.763 に答える
1

これはうまくいくはずです:

^(\w+\.)*\w+$

\w必要に応じて、より制限的なものに置き換えることができます (例: [a-z])

于 2013-11-08T09:58:30.700 に答える
0
Pattern dotSeparated = Pattern.compile("^\\w+(\.\w+)*$");  

\wアンダースコアも使用できるため、必要に応じて[A-Za-z0-9]または\\p{Alnum}に置き換え\wます。

これは、1 つ以上の英数字の後に 0 個以上の [ドット、その後に 1 つ以上の英数字が続く] が続くものと一致します。

于 2013-11-08T10:04:04.510 に答える
0

これはうまくいくはずだと思います

boolean ok = !str.matches(".*[^0-9a-zA-Z.].*|\\..*|.*\\.|.*\\.{2,}.*")
于 2013-11-08T09:55:39.563 に答える