Java用正则表达式分割字符串,双引号内的任何内容

标签 java regex

我正在尝试分割一个字符串,例如 String s = "do not split this \"split this\"";

String[] split = s.split("(?<=\\s)| (?=\") | ((?=[^A-Za-z0-9])|(?<=[^A-Za-z0-9]));

会给我["do", " ", "not", " ", "split", "this", " ", "split this"];

我想保留所有单词,空格,但忽略双引号内的任何内容〜

最佳答案

只是一个猜测:

String s = "do not split this \"split this\"";
String[] split = s.split( "(?<!\".{0,255}) | (?!.*\".*)" );  // do, not, split, this, "split this"

如果空格被引号包围,则不要在空格处拆分
当左侧 255 个字符空白右侧的所有字符都没有引号时,在空白处拆分

关于Java用正则表达式分割字符串,双引号内的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61104216/

相关文章:

python - 在 Python 中编写此正则表达式的更好方法

JavaScript 正则表达式\G + 等效偏移量

java - 如何找到除自己的数组之外的字符串数组的排列?

java - Algotrader 开源项目在 eclipse 中未被识别为 java 项目

Java如何根据输入检查多个正则表达式模式?

java - 正则表达式匹配由空格分隔的数字字符串中的数字

c# - 如何使用正则表达式获取在连续方括号中包含元素的字符串的子字符串?

java - 应用程序的大小,如何确定

java - ANTLR - 左递归去除辅助

java - Android:如何将字符串转换为日期