求写一个java 正则表达式

求写一个正则表达式,任意位数的数字-任意位数的数字。只能是数字,可以0开头。比如:
0123-01234560

public static void main(String[] args) {
    String str = "0123-01234560";
    String regEx = "[0-9]*-[0-9]*";
    Pattern pattern = Pattern.compile(regEx);
    Matcher matcher = pattern.matcher(str);
    boolean rs = matcher.matches();
    System.out.println(rs);
}

^[0][0-9]+$

public static void main(String[] args) throws Exception {
String content = "4243242343-88888";
String pattern = "^[0-9]*-[0-9]*$";
boolean isMatch = Pattern.matches(pattern, content);
System.out.println("字符串中是否为'任意位数的数字-任意位数的数字'? " + isMatch);
}


((^[0-9]){4})([-]{1})((^[0-9]){8})

^[0-9]+[-][0-9]+$

^\\d+-\\d+$

^[0-9][0-9]*[-][0-9][0-9]*$

var str:String = '1234\6789';
var __reg:RegExp = new RegExp('\\', '');
trace(
str.replace(__reg, '5'));

非常简单
^[\d]+-[\d]+$
^ 表达式开头
$ 表达式结尾
[\d]+ 任意位数的数字

  • 分隔符 [\d]+任意位数的数字

标准正则表达式是 ^\d+-\d+$
如果是通过字符串创建正则表达式的话,字符串中的 \ 字符要写成两个\
"^\d+-\d+$"

更正

标准正则表达式是 ^\d+-\d+$
如果是通过字符串创建正则表达式的话,字符串中的 \ 字符要写成两个\\
"^\\d+-\\d+$"

/^\d+-\d+$/g

/^\d+-\d+$/ 任意位数应该不包括0 吧

[\d]+[-][\d]*|[\d]+

需求是任意位数和只能以数字开头,可想到有以下几种形式:
1)012-2323;
2)98033;
3) 09343- ;
所以正则表达是如下:
[\d]+[-][\d]*[\d]+

((^[0-9]){4})+[-]+((^[0-9]){8})

很简单:
\d+-\d+

0-9]+[-] [0-9]

标准正则表达式是 ^\d+-\d+$
如果是通过字符串创建正则表达式的话,字符串中的 \ 字符要写成两个\
"^\d+-\d+$"