0

我不明白。在 .NET 中,我指定 RegexOptions.Multiline,使用http://gskinner.com/RegExr/我检查全局和多行

我期望的是匹配行的开头和结尾,并^匹配除换行符以外的任何内容。发生的事情似乎与换行符匹配,这似乎是错误的,因为 msdn 说标志允许它匹配换行符(我没有使用)。我正在使用 Linq 将组 1 转换为键,将组 2 转换为值,除第一个值外,所有值都有效。我想我可以用 substring 做点什么,但为什么 flash 和 .NET 说这个模式匹配以及我该如何修复(我想如果需要我可以使用 substring)$..*Single

图案:

^\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 回答