使用未用引号括起来的空格分割字符串
在这种情况下,我们寻求一种解决方案,使用以下空格将字符串分成多个组件不包含在单引号或双引号中。这是一项细致入微的任务,需要仔细制作正则表达式。
一个有效的解决方案涉及构建一个捕获两种类型元素的正则表达式:
要匹配这些元素,我们可以使用以下正则表达式:
[^\s"']+|"([^"]*)"|'([^']*)'
在此regex:
在 Java 中实现此解决方案,我们可以使用以下代码:
Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)\"|'([^']*)'"); Matcher regexMatcher = regex.matcher(subjectString); List<String> matchList = new ArrayList<>(); while (regexMatcher.find()) { if (regexMatcher.group(1) != null) { // Double-quoted string without quotes matchList.add(regexMatcher.group(1)); } else if (regexMatcher.group(2) != null) { // Single-quoted string without quotes matchList.add(regexMatcher.group(2)); } else { // Unquoted word matchList.add(regexMatcher.group()); } }
这种方法巧妙地捕获两种类型的元素,为给定问题提供了可靠的解决方案.
以上是如何按空格分割字符串,忽略引号内的空格?的详细内容。更多信息请关注PHP中文网其他相关文章!