還有乙個不知道其用法的(?>re)。
不知道ruby是否支援逆序環視(?<=...)或者不用逆序環視就可以在數值中插入逗號。
[解決辦法]
用逗號將數字劃分成3位一組的形式
*方法1:使用回行和先行的方法(回行(lookbehind)需要oniguruma庫的支援)
p "tone of 12345hz".gsub(/(?<=\d)(?=(?:\d\d\d)+(?!\d))/, ',')
=> ruby 1.8.0 (2003-08-07) [i586-linux]
"tone of 12,345hz"
*方法2:只使用先行的方法
p "tone of 12345hz".gsub(/(\d)(?=(?:\d\d\d)+(?!\d))/, '\1,')
=> ruby 1.8.0 (2003-08-07) [i586-linux]
"tone of 12,345hz"
*方法3:不使用先行的方法
s = "tone of 12345hz"
nil while s.gsub!(/(.*\d)(\d\d\d)/, '\1,\2')
p s=> ruby 1.8.0 (2003-08-07) [i586-linux]
"tone of 12,345 hz"
ruby正規表示式
ruby用 將正規表示式括起來。表示開頭,表示結尾,表示0個以上的任意字元。現在就講講正規表示式的規則的寫法。正規表示式中有很多上述的具有特別意義的字元。首先是下列字元。範圍描述符。a z 表示從a到z之間的任意乙個。w 英文本母和數字。即 0 9 a z a z w 非英文本母和數字 s 空字元,...
Ruby 正規表示式
ruby的正規表示式以 作為構造方法。表示式返回乙個regexp的物件。一般規則 a 匹配字元a。匹配特殊字元?特殊字元包括 匹配任意字元,例如 a.匹配ab和ac。ab c 匹配ac和bc,之間代表範圍。例如 a z a za z0 9 a za z0 9 匹配不在該範圍內的字串。d 代表任意數字...
ruby 正規表示式
ruby支援的正規表示式符號 元字元 有這麼個規則 不帶 的數字和字母不是元字元 帶 的符號也不是元字元 下文中出現的 匹配多位元組字元的正規表示式 是指,通過使用 kcode進行設定,或顯式地使用漢字選項 請參考正規表示式字面值 等方式進行的匹配多位元組字元的正規表示式。行首。與字串的頭部或換行符...