【问题标题】:How to split sentence to words and punctuation using split or matcher?如何使用拆分或匹配器将句子拆分为单词和标点符号?
【发布时间】:2015-03-25 12:35:23
【问题描述】:

我需要将句子拆分为单词和标点符号,并将它们放入列表中,保存它们的顺序。

例如: "Some text here!"。结果应该是:List(Some, ,text, , here,!)

我正在使用String.split("regex"); 使用“split”我可以仅按单词或仅按标点符号拆分文本。

那么我应该使用什么来同时按单词和标点符号分割文本? 提前谢谢你。

【问题讨论】:

  • 如果有一些数字怎么办? ..some text2 here! 4 you?
  • 数字属于单词。这就像从非单词字符中拆分单词。
  • 现在我只能将字符串拆分为单词并将它们添加到列表中。像 String[] words = sentenseToParse.split(regex);但我还需要从同一个字符串(包括空格)中获取非单词字符,如 !@#$。并将 em 放到 String[] sentenseParts 中。它应该像 {word, space, another word, dot}

标签: java regex parsing text split


【解决方案1】:

基于

结果应该是:List(Some, ,text, , here,!)

您似乎想在 word boundaries split("\\b") 上拆分。

String data = "Some text here!";
for (String s : data.split("\\b")){
    System.out.println("'"+s+"'");
}

输出:

'Some'
' '
'text'
' '
'here'
'!'

【讨论】:

  • 是的,这就是我需要的。我现在试试看。谢谢!抱歉我的愚蠢问题)
  • 这种事情太复杂了,无法在这个问题中回答。考虑posting another question,您将在其中准确描述您想要实现的目标。
  • 也尽量避免XY problem
  • 谢谢你。我会。我意识到我在回答问题。
猜你喜欢
  • 2013-04-14
  • 2020-01-11
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
相关资源
最近更新 更多