2017-12-18 6 views
0

から日付を抽出するために、私持っている日付&時間を以下、私が持っているもの 正規表現は、時間

正規表現

を使用して、単純な数字に変換するために探して:2017-11-02T04:00:00Z

何I 20171102(月/日の先行ゼロを含む)

これはRegExで可能ですか? 「(?。*)^ - 」を使用して仕事の時間の後に「2017-」だけで取得することができた

は、任意の救いの手がはるかに高く評価され、難しく思える

編集:私はこれをしようとしています場所を示します。私はNintex for SharePointでこれをやろうとしています。しかし、その前に、私は

enter image description here

enter image description here

+0

なぜ、日付ライブラリを使用しないのですか? –

+0

代わりに日付/時刻解析モジュールを使用してみませんか? – Verv

+0

正規表現をどこで試していますか?コードを表示します。 –

答えて

1

テンプレートに置き換えて、次の正規表現を使用します。

^(\d{4})-(\d{2})-(\d{2}).* 

をし、交換用のパターンとして

$1$2$3 

を提供しています。

詳細

  • ^ - 文字列の先頭
  • (\d{4}) - (後で置換パターンから$1後方参照とを参照)グループ1:4桁0​​
  • -
  • - ハイフン
  • (\d{2}) - グループ1(後で参照番号$2で参照されます。 ementパターン): - 文字列の残りの二桁
  • .*:二桁
  • - - - ハイフン
  • (\d{2})グループ3は、(後で置換パターンから$3後方参照)とを参照します。

regex demoを参照してください。あなたは3つの試合グループを使用する必要がありますので

enter image description here

1

方法について^\d{4}-\d{2}-\d{2}を検証するためにwww.regEx101.comを使用していますか?

これは、正確に4桁、ハイフン、2桁、ハイフン、2桁の順となります。

var str = "2017-11-02T04:00:00Z"; 
 
var res = str.match(/^\d{4}-\d{2}-\d{2}/)[0]; 
 
console.log(res);

+0

regex101で動作します。しかし、Ninexの答えは「T04:00:00Z」と思われます。何かご意見は? – Dingo

0

は、正規表現にマッチグループから文字を除外する方法はありません。私は正規表現を試すためにsedコマンドラインを使用します。ここで私が何を意味するか示すために、いくつかの出力は次のとおりです。

$ echo '2017-11-02T04:00:00Z'|sed 's/^\([0-9]*\)-\([0-9]*\)-\([0-9]*\)T.*$/\1\2\3/' 
20171102 

このコマンドは、別のキャプチャグループ内の数字の任意の長さの各シーケンスにマッチし、次に3グループと、文字列全体を置き換えます。あなたの言語がどのようにこの機能を実装しているかはさまざまです。