すべての行がリストのインデックス内にある字幕ファイル(.srt)からリストを作成しました。ここで、いくつかの行、特に「xx:xx:xx、xxx-> xx:xx:xx、xxx」の形式の時間間隔で始まる行を消去したいと思います。私はいくつかの調査を行い(わかりました、複雑なトピックに関する非常に表面的な調査、追加するかもしれません)、次のサブを作成しようとしました:
Private Shared Sub listCleaning(ByRef sList As List(Of String))
For Each line As String In sList
Dim pattern As String = "\b\d\d:\d\d:\d\d:\d\d,\d\d\d --> \b\d\d:\d\d:\d\d:\d\d,\d\d\d"
Dim reg As New Regex(pattern)
If line = "" Or Integer.TryParse(line, Nothing) Or reg.IsMatch(pattern) Then
sList.Remove(line)
End If
Next
End Sub
今私は2つの問題を抱えています:
- 正規表現が正しく解析されていません。
- Ifブロックに有効な条件があり、行が削除されると、リストが変更されたため、次を押すときにInvalidOperationExceptionが発生します。
誰かが正しい正規表現を書いて、不要な行を削除してリストを反復処理する方法を教えてもらえますか?
事前にtnx。
編集:
わかりました。Timは問題のほとんどを解決しましたが、パターン「xx:xx:xx、xxx-> xx:xx:xx、xxx」に適合する正規表現が必要です。気にかけてくれる人はいますか?
前もって感謝します!