gpt4 book ai didi

java - 根据空格在 java 中拆分一个字符串,用双引号和单引号转义那些空格,前面是\

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:18 26 4
gpt4 key购买 nike

我对正则表达式完全陌生。我正在尝试将一个表达式放在一起,该表达式将使用所有未被单引号或双引号引起来并且前面没有“\”

的空格来拆分示例字符串

例如:-

He is a "man of his" words\ always

必须拆分为

He
is
a
"man of his"
words\ always

我明白了

List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("[^\\s\"']+|\"[^\"]*\"|'[^']*'");
Matcher regexMatcher = regex.matcher(StringToBeMatched);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}

l 使用未被单引号或双引号括起来的所有空格拆分示例字符串

如果前面有\??,我如何合并忽略空白的第三个条件?

最佳答案

你可以使用这个正则表达式:

((["']).*?\2|(?:[^\\ ]+\\\s+)+[^\\ ]+|\S+)

RegEx Demo

在 Java 中:

Pattern regex = Pattern.compile ( 
"(([\"']).*?\\2|(?:[^\\\\ ]+\\\\\\s+)+[^\\\\ ]+|\\S+)" );

解释:

此正则表达式适用于交替:

  1. 首先匹配 ([\"']).*?\\2 以匹配任何带引号(双引号或单引号)的字符串。
  2. 然后匹配 (?:[^\\]+\\\s+)+[^\\]+ 以匹配任何带有转义空格的字符串。
  3. 最后使用 \S+ 匹配任何没有空格的单词。

关于java - 根据空格在 java 中拆分一个字符串,用双引号和单引号转义那些空格,前面是\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27608196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com