Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用否定标记字符串_Java_Regex_Token - Fatal编程技术网

Java 使用否定标记字符串

Java 使用否定标记字符串,java,regex,token,Java,Regex,Token,因此,我有以下问题: 我必须使用string.split()对字符串进行tokenize标记,标记的格式必须为07dddddddd,其中d是一个数字。我考虑使用以下正则表达式:^(07\\d{2}\\s\\d{3}\\d{3})并将其作为参数传递给String.split()。但出于某种原因,尽管我在该表单下有子字符串,但它输出整个初始字符串,并且不标记它 我最初认为它使用空字符串作为拆分器,因为空字符串确实匹配该正则表达式,但即使在我向正则表达式中添加了&(.)+以确保拆分器的长度不为0后,它

因此,我有以下问题: 我必须使用
string.split()
对字符串进行
tokenize
标记,标记的格式必须为
07dddddddd
,其中d是一个数字。我考虑使用以下正则表达式:
^(07\\d{2}\\s\\d{3}\\d{3})
并将其作为参数传递给String.split()。但出于某种原因,尽管我在该表单下有子字符串,但它输出整个初始字符串,并且不标记它

我最初认为它使用空字符串作为拆分器,因为空字符串确实匹配该正则表达式,但即使在我向正则表达式中添加了
&(.)+
以确保拆分器的长度不为0后,它仍然输出整个初始字符串

我知道我可以使用
模式
匹配器来更快地解决它,但我必须使用String.split()。知道为什么会发生这种情况吗?

一些提示
  • 您的模式
    ^(07\d{2}\s\d{3}\d{3})
    在最后两组数字之间缺少空格
  • 返回整个字符串的原因是,首先从未找到此模式:没有拆分
  • 如果在此模式上拆分(一旦修复),则生成的数组将是介于此模式之间的字符串(这些标记实际上已删除)
  • 如果要使用此模式(一旦修复),则需要“全部匹配”而不是“拆分”。这看起来像是
    arrayOfMatches=yourString.match(/pattern/g)
  • 如果要拆分,则需要使用标记之间存在的分隔符(该分隔符实际上可能只是将要跟随的
    07
    声明的零宽度位置)
进一步阅读


向我们展示示例输入和输出..是
0712 345 679
一个标记,还是应该在空格上拆分为3个标记的输入?@AaronDigulla或在多行模式下的行开始处。我知道。正如我在缺少的空间中提到的,它还没有准备好进入黄金时段。:)