当我使用scan(/\p{graph}+/)
时,它可以工作:
"ich gehe nach Köln am 12.09.2012".scan(/\p{graph}+/)
=> ["ich", "gehe", "nach", "Köln", "am", "12.09.2012"]
但如果出现类似“Köln.am
”的输入错误,则输出错误:
"ich gehe nach Köln.am 12.09.2012".scan(/\p{graph}+/)
=> ["ich", "gehe", "nach", "Köln.am", "12.09.2012"]
当我使用scan(/\p{alnum}+/)
时,日期不正确:
"ich gehe nach Köln.am 12.09.2012".scan(/\p{alnum}+/)
=> ["ich", "gehe", "nach", "Köln", "am", "12", "09", "2012"]
有人知道另一种解决方案吗?
答案 0 :(得分:0)
对于这个简单的情况,您可以使用替换进行检查,并匹配一系列字母或带点的一系列数字。
"ich gehe nach Koeln.am 12.09.2012".scan(/\p{alpha}+|[\d+.]+/)
输出:
["ich", "gehe", "nach", "Koeln", ".", "am", "12.09.2012"]
或者,如果您不想匹配单点
"ich gehe nach Koeln.am 12.09.2012".scan(/\p{alpha}+|\d+(?:\.\d+)*/)
输出:
["ich", "gehe", "nach", "Koeln", "am", "12.09.2012"]
答案 1 :(得分:-1)
我不确定你想要什么结果,所以我的答案可能不正确。
"ich gehe nach Köln am 12.09.2012".split /\s/
=> ["ich", "gehe", "nach", "Köln", "am", "12.09.2012"]
编辑:
请注意,连续几个空格会破坏结果。
"ich gehe nach Köln am 12.09.2012".split /\s/
=> ["ich", "gehe", "nach", "Köln", "", "", "", "", "", "", "", "am", "12.09.2012"]