我对正则表达式完全不熟悉.我正在尝试将一个表达式放在一起,该表达式将使用未被单引号或双引号括起的所有空格拆分示例字符串,并且前面没有'\'
例如:-
He is a "man of his" words\ always
Run Code Online (Sandbox Code Playgroud)
必须拆分为
He
is
a
"man of his"
words\ always
Run Code Online (Sandbox Code Playgroud)
我明白
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("[^\\s\"']+|\"[^\"]*\"|'[^']*'");
Matcher regexMatcher = regex.matcher(StringToBeMatched);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}
Run Code Online (Sandbox Code Playgroud)
l使用未被单引号或双引号括起的所有空格拆分示例字符串
如果前面有一个\ _,那么如何合并忽略空白区域的第三个条件?
您可以使用这个正则表达式:
((["']).*?\2|(?:[^\\ ]+\\\s+)+[^\\ ]+|\S+)
Run Code Online (Sandbox Code Playgroud)
在爪哇中:
Pattern regex = Pattern.compile (
"(([\"']).*?\\2|(?:[^\\\\ ]+\\\\\\s+)+[^\\\\ ]+|\\S+)" );
Run Code Online (Sandbox Code Playgroud)
解释:
这个正则表达式适用于交替:
([\"']).*?\\2
任何带引号的(双或单)字符串。(?:[^\\ ]+\\\s+)+[^\\ ]+
以匹配带有转义空格的任何字符串。\S+
匹配任何不带空格的单词。