2017-09-20 9 views
0

私はあなたが入力として、いくつかのテキストを取得し、特定の方法でそれをフォーマットする必要があり、このパズルでCodinGame https://www.codingame.com/ide/puzzle/cgx-formatterCodinGameでこの正規表現をデバッグする方法は?

にこのパズルを解くしようとしています。私のアプローチは、数値、文字列、ブール値、囲まれたブロックなどの入力の開始点を確認することです。入力文字列から一致する部分を削除し、要素オブジェクトを構築します。私が終わったら、要素をtoStringメソッドで出力します。

'key'=somethingから'string'を識別することに問題があります。私は入力の始めにあるすべてのものを ''で囲んで、その後には=をつけずにマッチさせたいと思います。キーと=の間にスペースやタブがある可能性があります。

if節ザ・:

if(concat.matches("^'.*'.*") && !concat.matches("^'.*'\\s*=")){ 
    System.err.println("Test"); 
} 

が真(間違って)文字列'key'='value'について評価します。私は間違って何をしていますか?

concatは、1行に連結された入力文字列です。

答えて

0
"^'([^']*)'[ \t]*[^=]*$" 

()はあなたのマッチ、引用符なしのキーです。

これは、一重引用符で始まる文字列と一致し、一重引用符から一重引用符以外の任意の数の文字が続きます。その後、任意の数(ゼロを含む)が発生する可能性があります。行の最後まで任意のchar(等号を除く)の番号(ゼロを含む)が発生することがあります。

関連する問題