這是我今天上午遇到的。我已經得到了很多的JavaScript文件寫在CMD模式是這樣的:匹配由IO返回的行的開始處的奇怪行爲#閱讀
define(function(require, exports) {
// code goes here
})
我有一個簡單的Ruby腳本來處理這些文件的結果是這樣的:
define(['module-a', 'module-b'], function(reuqire, exports) {
// code
})
這樣,我已經做了它是通過打開這些文件,閱讀其內容,看它們是否匹配/^define\(function/
,然後替換他們,如果他們這樣做:
code = File.open('foo.js').read
if code =~ /^define\(function/
# do some work
end
怪異的一部分是,該代碼將不匹配,經常expressi上。第2行返回nil
。這將工作:
code = "define(function(require, exports) {\n"
code =~ /^define\(function/ # ==> 0
它只是如果代碼使用IO#read
讀返回nil
。然而字符串的開始工作:
code = File.open('foo.js').read
code =~ /.define\(function/m # ==> 0
code[0] # ==> "" returns an empty string
但不^
匹配所有的行開始?
爲我工作。什麼'IO#read'返回? – halfelf 2013-03-08 05:05:59
@halfelf成功返回文件內容 – nil 2013-03-08 05:09:18
隨着Ruby 1.9.3,也適用於我。 – toch 2013-03-08 08:19:28