当前位置: 首页 > 知识库问答 >
问题:

将字符串拆分为单词和标点符号,但不要在内部标点符号上拆分

勾海超
2023-03-14

我有一个字符串有一只男孩的小狗。真的吗?。我需要找到外部标点符号并将它们从附加的单词中拆分出来,并将它们视为另一个单词。输出将是:

  • 男孩的将是一个单词(内部标点符号)
  • 小狗 将是两个单词,小狗和
  • 真的吗将是两个词,真的

我的代码根据外部标点符号拆分单词,但我希望它们作为单独的单词。

String[] Res = word.split("[\\p{Punct}\\s]+");

我该怎么做?

共有1个答案

和和裕
2023-03-14

您想对reg-ex执行的操作是使用非捕获组,使其成为输出的一部分,因此在reg-ex中,我有两个组,其中第一个组是捕获,第二个组是非捕获。我不确定我是否已将您想要的所有外部标点符号都包含在我的非捕获组中,(?=X)

String word = "There is a boy's puppy. Really?";
String[] res = word.split("(\\s+)|(?=[\\.\\?])");

for (String s: res ) {
    System.out.print("[" + s + "]");
} 

输出是

[那里][有][一个][男孩的][小狗][.][真的][?]

 类似资料:
  • 原则 中文语句的标点符号,均应该采取全角符号,这样可以保证视觉的一致。 如果整句为英文,则该句使用英文/半角标点。 句号、问号、叹号、逗号、顿号、分号和冒号不得出现在一行之首。 句号 中文语句中的结尾处应该用全角句号(。)。 句子末尾用括号加注时,句号应在括号之外。 错误:关于文件的输出,请参照第 1.3 节(见第 26 页。) 正确:关于文件的输出,请参照第 1.3 节(见第 26 页)。 逗号

  • 我有一根下面这样的弦- value1,value2,value3,value4,“value5,1234”,value6,value7,“value8”,value9,“value10,123.23”

  • 问题内容: 假设我有一个包含一些字母和标点符号的String数组 在字母[3]中,我们带有“。” 如何检查字符串是否为标点符号?我们知道有许多可能的标点符号(,。?!等) 到目前为止,我的进度: 问题答案: 您是否还需要检查更多标点符号? 如果是这样,您可以执行此操作。

  • Java官方文档说明: 例如,字符串使用以下表达式Regex Result生成以下结果: 这就是我需要它工作的方式。然而,如果我运行这个: 它打印: 这与我的预期相去甚远: 为什么会这样?

  • 这个问题类似于我之前的问题拆分一个包含破折号和减号的字符串。但我问错了,然后它得到了稍微不同的语义,人们从这个角度回答(包括)。因此,与其修改这个问题,我认为最好是提出一个新问题。 我必须拆分一个包含连字符-减号和减号的字符串。我尝试根据Unicode字符(https://en.wikipedia.org/wiki/Hyphen#Unicode)进行拆分,但考虑到减号与连字符-减号相同。有什么方法

  • 问题内容: 我正在尝试执行类似以下的拆分: 输出: 我要执行此拆分: 但我看到: 有什么办法可以摆脱括号吗?任何帮助表示赞赏。 问题答案: