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中,“(?)?