2017-12-15 17 views
0

ファイル名と7桁の数字の後にハイフンを付けた正規表現を入力しようとしました。 1234567 - filename.pdf"<7桁> - <filename>"と一致する正規表現

ファイル名には、有効な任意のファイル名の集合を使用できます。

これまでのところ、文字列と一致する正規表現^[0-9]{7} - .*がありますが、7654321 - 1234567 - filename.pdf3214567 - 7654321 - 1234567 - filename.pdfなどとも一致します。

1組の数字とハイフンの文字列に一致する正規表現はありますか? ^[0-9]{7} -{1} .*

+0

たぶん、 '^ [0-9] {7} - ([0-9] {7} - ?!)*'。?空白の量が任意の場合、それは動作しません。 –

+0

ハイフンの前後にスペースが1つしかありません。 これは何を説明していますか? 7桁の文字列の後に続く文字列が他の7桁の文字列でないことを確認しますか? –

+0

[regex demo](http://regexstorm.net/tester?p=%5e%5b0-9%5d%7b7%7d+-+%28%3f!%5b0-9%5d%7b7%7d+- +%29。*&i = 7654321 + - 1234567 + - + filename.pdf%0d%0a3214567 + - + 7654321 + - 1234567 + - + filename.pdf%0d%0a1234567 + - filename.pdf&o = m)。最初の7桁、スペース、 '-'、スペースの後に7桁、スペース、' - 'とスペースが見つかると'(?![0-9] {7} - ) –

答えて

3

ような何かあなたが否定先読み追加する可能性があります。

^[0-9]{7} - (?![0-9]{7} -).* 
      ^^^^^^^^^^^^^^^ 

regex demoを参照してください。

詳細

  • ^ - 文字列の先頭
  • [0-9]{7} - 7桁
  • - - 空間、-、空間
  • (?![0-9]{7} -) - マッチに失敗がある場合に負の先読み7桁、スペース、-、現在の場所のすぐ右のスペース
  • .* - できるだけ多くの任意の0+文字、
関連する問題