ruby正規表示式不支援逆序環視?該怎麼解決

2021-06-22 02:25:36 字數 703 閱讀 1453

還有乙個不知道其用法的(?>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進行設定,或顯式地使用漢字選項 請參考正規表示式字面值 等方式進行的匹配多位元組字元的正規表示式。行首。與字串的頭部或換行符...