0

理解できない。.NET では、http://gskinner.com/RegExr/ を使用して RegexOptions.Multiline を指定します。グローバルとマルチラインをチェックします。

私が期待しているのは、行の最初^$最後に.一致し、改行以外のものに一致することです。何が起こっているのかと.*いうと、改行に一致するように見えますが、msdn はSingleフラグが改行に一致することを許可しているため、間違っているようです (私は使用していません)。Linq を使用して、グループ 1 をキーとして、2 を値として変換しています。最初の値を除くすべての値が機能します。部分文字列で何かできると思いますが、なぜフラッシュと .NET はこのパターンが一致すると言い、どのように修正するのですか (必要に応じて部分文字列を使用できると思います)

パターン:

^\s*([^\:]+)\s*\:\s*(.*)$

入力

ffmp


eg version N-54691-g7f4a1fd Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 12 2013 16:26:02 with gcc 4.7.3 (GCC)

  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 39.100 / 52. 39.100
  libavcodec     55. 18.102 / 55. 18.102
  libavformat    55. 12.102 / 55. 12.102
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 80.101 /  3. 80.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, ogg, from 'd:\music\a.ogg':
  Duration: 00:03:24.49, start: 0.000000, bitrate: 195 kb/s
    Stream #0:0: Audio: vorbis, 44100 Hz, stereo, fltp, 192 kb/s
    Metadata:
----
---
      ARTIST          : Anamanaguchi
      TITLE           : Blackout City
      ALBUM ARTIST    : Anamanaguchi
      ALBUM           : Dawn Metropolis
      track           : 1
      YEAR            : 2009
      GENRE           : rock
      DATE            : 2009
      ENCODER         : MediaMonkey 4.0.3
      ENSEMBLE        : Anamanaguchi
      RATING          : -1
At least one output file must be specified
4

1 に答える 1

1

代わりに次のパターンを使用します。

^\s*([^:\n]+)\s*:\s*(.*)$

これは、改行[^:]を除くすべての文字に一致する文字クラスが原因です。:

単一行モードは、ドットが改行に一致できることのみを意味することに注意してください。文字クラスを使用しているため、モードの有無にかかわらず同じ動作になります。

于 2013-07-13T19:12:22.533 に答える