0

私が使用する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"]

誰かが別の解決策を知っていますか?

4

2 に答える 2

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"]
于 2012-10-01T14:45:59.800 に答える
-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"]
于 2012-10-01T14:28:02.030 に答える