フレンズ
"^[0-9]{1,12}+(\\.[0-9]{1,4})?$"
次の値を許可する次の正規表現があります
123456789012.1234は有効な10進数値です{12,4}
有効な整数値などである123456789012
しかし、それは0.1235などのような値を許可していない、それはまたのような値ができますように、どのように私は正規表現の上に変更する必要があり、0.123および123など
私は推測する、
^(?:[0-9]{1,12}(?:\\.[0-9]{0,4})?|\\.[0-9]{0,4})$
やや近いかもしれません。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpression{
public static void main(String[] args){
final String regex = "^(?:[0-9]{1,12}(?:\\.[0-9]{0,4})?|\\.[0-9]{0,4})$";
final String string = "123456789012.1234\n"
+ "123456789012\n"
+ ".1235\n"
+ ".123\n"
+ "123.\n"
+ ".12345\n"
+ "0.12345";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Full match: 123456789012.1234
Full match: 123456789012
Full match: .1235
Full match: .123
Full match: 123.
式を簡略化/更新/探索する場合は、regex101.comの右上のパネルで説明されています。興味がある場合は、このデバッガリンクで一致するステップを確認するか、変更できます。デバッガーは、RegExエンジンが段階的にいくつかのサンプル入力文字列を消費し、マッチングプロセスを実行する方法を示します。
jex.imは正規表現を視覚化します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加