2015-08-23 86 views
1

我有以下格式很長的文本文件開始的所有行:刪除不使用字母或標點符號

1 
00:00:00,000 --> 00:00:16,700 
to use 2 languages. 

2 
00:00:16,700 --> 00:00:19,600 
I was saying that we are going to use 2 languages 

3 
00:00:19,600 --> 00:00:24,700 
...I myself will continue to speak because of time 

現在我想刪除一切,但文字,所以結果應該是:

to use 2 languages. 
I was saying that we are going to use 2 languages 
...I myself will continue to speak because of time 

什麼是正確的正則表達式命令?另外一個命令可以刪除所有包含數字的行。我正在使用Sublime Text或regex101.com

+0

是的,這也將是足以解決問題! – TobiasH

回答

2
/(?:^|\n)\d+\n[\d\:\,\s\->]+/g 

這似乎是一個很不錯的RegEx。用\n代替,你只剩下單詞。

Demo

1

這兩個都需要多行不區分大小寫模式。
它們被排列在正則表達式中,但可以指定爲其中一個查找選項。

替換項是一個空字符串。

對於標點符號,這樣使用屬性:

# (?im)(?:^[^\p{punct}a-z].*\s*)+ 

(?im) 
(?: 
    ^
     [^\p{punct}a-z] 
     .* 
     \s* 
)+ 

這一個使用POSIX:

# (?im)(?:^[^[:punct:]a-z].*\s*)+ 

(?im) 
(?: 
    ^
     [^[:punct:]a-z] 
     .* 
     \s* 
)+