2016-06-17 12 views
0

私はウェブサイトからデータをクロールしています。そして、これはどのように私は「夜12時10分」を取得し、「3時10分」ことができますか?私が受け取った文字列私は鋸山文字列ルビーで時間を取得する

でHTMLを解析
"0:10\r\n    (+1)\r\n   " 
"03:10\r\n    (+1)\r\n   " 

ですかUPDATE

そして、何matchgsubの間で違いますの?

ありがとうございます!

+0

/¥d{0,2}:¥d{0,2}/.match("0:10\r\n(+1)\ r \ n ") 偶数にしたい場合は ([0-1]?[0-9] + | [2] [0-4]):[0-5] [0-9] – engineer14

+0

あなたはgsubを次のように使用します。あなたは交換したい。 Match just just matches – engineer14

+0

正確には、gsubは_all_マッチの文字列を指定した文字列に置き換えて返します。 Matchは_first_マッチのテキストを返します。 – lwassink

答えて

0

あなたは正規表現を使用します/\d{0,2}:\d{0,2}/ @ engineer14掲載。

console.log("0:10\r\n    (+1)\r\n   ".match(/\d{0,2}:\d{0,2}/)[0]) 
 
console.log("03:10\r\n    (+1)\r\n   ".match(/\d{0,2}:\d{0,2}/)[0])

説明:

/ <-- open regex 
\d <-- look for digit 
{0,2} <-- zero or more of them 
: <-- look for a colon 
\d <-- look for another digit 
{0,2} <-- zero or more of them 
/<-- close regex 
+0

あなたは彼に簡単な説明をしたいかもしれません。 – engineer14

+0

この回答にはクレジットを入れておきたいと思うかもしれませんが、回答に反対する理由は何故コメントを残したのか分かりません。あなたが望むなら、私はこの1つを削除します。 –

+0

@marと同意しますが、あなたの説明は私にとっても良いことです!皆さんありがとう ! –

1

あなたの正規表現のみ必要なパターンを持っている文字列と一致している必要があり、それは動作しますが、ここでの証拠です。

r =/
    \A     # match beginning of string 
    (     # begin capture group 1 
     \d+     # match one or more digits 
     :     # match a colon 
     \d{2}    # match two digits 
    )      # end capture group 1 
    \r\n\s+\(\+1\)\r\n\s+ # match substring 
    \z     # match end of string 
    /x     # free spacing regex definition mode 

"0:10\r\n    (+1)\r\n   "[r,1] 
    #=> "0:10" 
"03:10\r\n    (+1)\r\n   "[r,1] 
    #=> "03:10" 
"0:101\r\n    (+1)\r\n   "[r,1] 
    #=> nil 
":10\r\n    (+1)\r\n   "[r,1] 
    #=> nil 
"0:10 \r\n    (+1)\r\n   "[r,1] 
    #=> nil 
"0:10\r\n    (+2)\r\n   "[r,1] 
    #=> nil 
"0:10\r\n    (+1)\r\n   cat"[r,1] 
    #=> nil 

文字列の仕方によっては、パターンに若干の変更が必要な場合があります。たとえば、カッコ内の「+1」に「+」と正の数字が続く場合は、\(\+1\)\(\+\d+\)に置き換える必要があります。

0

あなたはどのサイトをクロールしていますか? +1がタイムゾーンであるかどうかを検討することが重要になる場合があります。

+0

これは問題の仲間ではありません。私はそれを無視します:) –

+0

これはコメントでなければなりません。 –

関連する問題