首页 > Java > java教程 > 正文

如何在 Java 中对带空格的字符串进行标记,排除引用的子字符串?

Mary-Kate Olsen
发布: 2024-11-20 15:01:17
原创
495 人浏览过

How to Tokenize Strings with Spaces, Excluding Quoted Substrings in Java?

用空格标记字符串,排除 Java 中带引号的子字符串

基于空格分隔字符串可能很简单,但是如果字符串被引用并且应该被视为单个标记?在 Java 中,您可以使用正则表达式实现这种细致入微的拆分。

要处理这种情况,可以使用以下方法:

String str = "Location \"Welcome  to india\" Bangalore Channai \"IT city\"  Mysore";

List<String> list = new ArrayList<>();
Matcher m = Pattern.compile("([^\"]\S*|\".+?\")\s*").matcher(str);
while (m.find())
    list.add(m.group(1));
登录后复制

此处使用的正则表达式有效地将字符串拆分为基于空格的标记,但它也标识引用的子字符串。通过将这些带引号的子字符串捕获为单个标记,我们可以确保像“Welcome to india”这样的短语保持完整。

正则表达式可以理解如下:

  • [^" ]: 匹配任何不是双引号 (") 的字符。
  • S*: 匹配零个或多个非空格
  • |:管道符号表示 OR 条件。
  • ".?":匹配双引号,后跟一个或多个字符(包括空格),后跟双引号.
  • s*:匹配零个或多个空白字符。

这允许我们处理带引号的复杂字符串有效的短语。结果列表包含代表单个单词或引用的短语的标记,如所提供的示例中所要求的。

以上是如何在 Java 中对带空格的字符串进行标记,排除引用的子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板