2016-03-28 74 views
0

我有來自多個來源的文件的集合。是否可以讀取字符串的集合並返回Regexp?

每個文件都包含像字符串:

File 1: A) B) C) D) E) 
File 2: a) b) c) d) e) 
File 3: a. b. c. d. e. 
File 4: a- b- c- d- e- 
(...) 

我知道我可以事先編寫所有可能的模式,但我寧願自動進行的。

是否可以讓程序讀取文件和的模式? 例如:

File 1: A) B) C) D) E) # => [ABCDE]\) 
File 2: a) b) c) d) e) # => [abcde]\) 
File 3: a. b. c. d. e. # => [abcde]\. 
File 4: a- b- c- d- e- # => [abcde]- 
+0

取決於你想要做什麼[這裏](http://www.regexformat.com/version_files/Rx5_ScrnSht01.jpg)和[這裏](http://www.regexformat.com/Dnl/_Samples/_Ternary_Tool %20(詞典)/ ___ TXT /)。通過三元樹創建正則表達式樹。 – sln

+0

可能的重複:http://stackoverflow.com/questions/616292/is-it-possible-for-a-computer-to-learn-a-regular-expression-by-user-provided-e – Amadan

+0

閱讀http:///stackoverflow.com/a/5395777/128421。你應該能夠基於它建立一些東西。 –

回答

1

Regexp.union是足夠聰明逃避括號,但就是這樣。

str = "A) B) C) D) E)" 
p re = Regexp.union(*str.split) # => /A\)|B\)|C\)|D\)|E\)/ 

Perl的Regexp::assemble也許能夠做到這一點,據我所知是沒有的Ruby等價的。

相關問題