Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 - Fatal编程技术网

Java 如何使用前面没有字符的分隔符拆分字符串?

Java 如何使用前面没有字符的分隔符拆分字符串?,java,regex,Java,Regex,我有一个字符串str=“杰克!!!杰克逊!!!泰森\\!!!!!!!皮特” 我想用拆分字符串但是如果字符在之前,则忽略它是“\\” 我提出了str.split((?我认为以下方法可行: (?<!\\)!!!(?=(?:!!!)*(?!!)) (? 在线查看 (?-断言位置前面没有文字反斜杠 !!!-字面上是三个感叹号 (?=-打开正向前瞻: (?:-打开非捕获组: !!!-字面上是三个感叹号 )*-关闭非捕获组并匹配0+次 (?!!)-感叹号的负前瞻 )-关闭正向前瞻 这

我有一个字符串
str=“杰克!!!杰克逊!!!泰森\\!!!!!!!皮特”

我想用
拆分字符串但是如果字符在
之前,则忽略它
“\\”


我提出了
str.split((?我认为以下方法可行:

(?<!\\)!!!(?=(?:!!!)*(?!!))
(?
在线查看

  • (?-断言位置前面没有文字反斜杠
  • !!!
    -字面上是三个感叹号
  • (?=
    -打开正向前瞻:
    • (?:
      -打开非捕获组:
      • !!!
        -字面上是三个感叹号
      • )*
        -关闭非捕获组并匹配0+次
    • (?!!)
      -感叹号的负前瞻
  • -关闭正向前瞻

这将拆分一个字符串,如
Jake!!!Jackson!!!Tyson\!!!!!!!Pete
也包括一个NULL(假设这是您所追求的)。作为Java字符串:
“(?@Amessichel,你能告诉我什么打字错误吗?事实上,我看到了旧版本Firefox的错误,但没有看到更新版本的Chrome.ECMAScript问题?总之,我所说的与此无关。非常感谢!!!”(?@Michael,不要替换否定前瞻中的第一个感叹号。在这些情况下,常见的问题是:字符串是否可以包含转义序列?例如,如果您有
Tyson\\\\!Pete
(在Java中,定义为
“Tyson\\\\\\\!Pete”
),是否要拆分不,只有拆分!!!。然后您可能可以使用下面的解决方案。单个
(?)在Java中,
“(?)?