2016-05-17 6 views
0

ための正規表現、私は私がで区切られた上記文字列スカラ - スカラで不確実な繰り返しパターン

1. [Country].[US], [Country].[Canada] 
2. [Country].[US], [Country].[Canada], [Country].[Mexico] 
3. [Country].[US].[New York], [Country].[US].[California] 

彼らは、ランダムであるため、以下の抽出する必要があり

1. [[Country].[US]-[Country].[Canada]] 
2. [[Country].[US]-[Country].[Canada]-[Country].[Mexico]] 
3. [[Country].[US].[New York]-[Country].[US].[California]] 

のような文字列の入力をしました - (ハイフン)。

グループに一致する正規表現が必要です。私は静的なパターンのためにそれを働かせることができますが、動的なものに対応する方法を知らない。負の整数を含む他の入力が可能と

は、私はあなたが単に"-"で最初と最後の文字と分割をドロップすることができ

[Rank].[-1]-[Rank].[1]-[Rank].[10] 

答えて

0

のように、ハイフンでそれを分割することはできません。

def extractTokens(text: String) = text.drop(1).dropRight(1).split("-") 

> extractTokens("[[Country].[US]-[Country].[Canada]]") 
> Array([Country].[US], [Country].[Canada]) 

> extractTokens("[[Country].[US]-[Country].[Canada]-[Country].[Mexico]]") 
> Array([Country].[US], [Country].[Canada], [Country].[Mexico]) 
+0

Jeanありがとうございました。しかし、私の入力には-ve numbers(編集済み)が含まれている場合があります。また、私は正規表現が動的な値のためにどのように使われることができるのか不思議です。 – kaur