我正在尝试将一个句子分成一组字符串。我想将所有单词、标点符号和空格保留在一个数组中。
例如:
“你好!我的名字是约翰·多伊。”
将分为:
["Hello", "!", " ", "My", " ", "name", " ", "is", " ", "John", " ", "Doe"]
我目前有以下代码行破坏了我的句子:
String[] fragments = sentence.split("(?<!^)\\b");
但是,这会遇到错误,它将标点符号后跟空格计为单个字符串。如何修改我的正则表达式来解决这个问题?
最佳答案
您可以尝试以下正则表达式:
(?<=\b|[^\p{L}])
"Hello! My name is John Doe.".split("(?<=\\b|[^\\p{L}])", 0)
// ⇒ ["Hello", "!", " ", "My", " ", "name", " ", "is", " ", "John", " ", "Doe", "."]
关于Java 正则表达式沿着单词、标点符号和空格进行分割,并将所有内容保存在一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230062/