【发布时间】:2013-03-30 13:23:52
【问题描述】:
寻找一些正则表达式帮助。我正在寻找一种 Java 中的方法来按单词拆分一些输入文本,同时保留分隔符(空格、标点符号)。另一种说法是将单词拆分为它们自己的索引,其他非单词字符可以在数组的其他索引中。
这个输入文本:
"Hello, this isn't working!"
应该像这样放入一个数组中:
{"Hello", ",", "this", "isn't", "working", "!"}
或
{"Hello", ", ", "this", " ", "isn't", " ", "working", "!"}
我在 Python 中使用它完成了基本相同的事情:
def split_input(string):
return re.findall(r"[\w']+|[\s.,!?;:-]", string)
但我还没有找到用 Java 完成同样事情的方法。我已经尝试过 String.split() 的前瞻/后视,我也尝试过模式匹配器,但运气不佳。
任何帮助将不胜感激!
【问题讨论】:
-
如果空格是分隔符,那么您的文本应该至少包含 4 个元素,不是吗?
-
为什么你想要一个数组,而你只有一个字符串?