所以我有以下问题:
我必须使用tokenize
String.split()
字符串,并且令牌必须采用07dd ddd ddd
形式,其中d是数字。我想到使用以下正则表达式:^(07\\d{2}\\s\\d{3}\\d{3})
并将其作为参数传递给String.split()。但由于某种原因,虽然我确实在该表单下有子串,但它输出整个初始字符串并且不会对其进行标记。
我最初认为它使用空字符串作为拆分器,因为空字符串确实匹配该正则表达式,但即使我将& (.)+
添加到正则表达式以确保拆分器没有' t得到长度0,它仍然输出整个初始字符串。
我知道我可以使用Pattern's
和Matchers
来更快地解决它,但我必须使用String.split()。任何想法为什么会这样?
答案 0 :(得分:1)
^(07\d{2}\s\d{3}\d{3})
在最后两组数字之间缺少空格arrayOfMatches = yourString.match(/pattern/g);
07
所声明的零宽度位置即将跟随)进一步阅读