123_456 >>> 123456 # 下劃線被忽略了
?a # character code?/n # code for a newline (0x0a)
?/c-a # control a = ?a & 0x9f = 0x01
?/m-a # meta sets bit 7
?/m-/c-a # meta and control a
?/c-? # delete character
# 單引號://表示乙個/,/『表示乙個單引號'。'escape using "//"' » escape using "/"
'that/'s right' » that's right
# 雙引號:支援類似於shell的變數替換,使用#的格式。
"seconds/day: #" » seconds/day: 86400
"#merry christmas" » ho! ho! ho! merry christmas
"this is line #$." » this is line 3
# %q和%q:當後面跟的是} » seconds/day: 86400
# here documents: 這個和shell的用法是一樣的。
astring = <(other)
self.volume <=> other.volume
enddef succ
raise(indexerror, "volume too big") if @volume >= 9
vu.new(@volume.succ)
endend
# range作為條件表示式來使用(這個現在還不太明白)
while gets
print if /start/../end/
end# range作為interval的用法(也就是看某個元素是否在乙個區間之內)
(1..10) === 5 » true
(1..10) === 15 » false
a = regexp.new('^/s*[a-z]') » /^/s*[a-z]/ # 直接使用類的new方法b = /^/s*[a-z]/ » /^/s*[a-z]/ # 使用//literal
c = %r » /^/s*[a-z]/ # 使用%r{}的方式
a = "fats waller"a =~ /a/ » 1
a =~ /z/ » nil
a =~ "ll" » 7
# 主要的區別在於如果字串中包含/n(換行符)showre("this is/nthe time", /^the/) » this is/n<> time
showre("this is/nthe time", /is$/) » this <>/nthe time
showre("this is/nthe time", //athis/) » <> is/nthe time
showre("this is/nthe time", //athe/) » no match
character class abbreviationssequence as [ ... ] meaning
/d [0-9] digit character
/d [^0-9] nondigit
/s [/s/t/r/n/f] whitespace character
/s [^/s/t/r/n/f] nonwhitespace character
/w [a-za-z0-9_] word character
/w [^a-za-z0-9_] nonword character
#注意,'.'號在regexp裡面一般是匹配除了/n之外的任何字元,除非是在multiline的模式下。
r * matches zero or more occurrences of r.r + matches one or more occurrences of r.
r ? matches zero or one occurrence of r.
r matches at least ``m'' and at most ``n'' occurrences of r.
r matches at least ``m'' occurrences of r.
showre("the moon is made of cheese", //s.*?/s/) » the<< moon >>is made of cheese
a = 'red ball blue sky'showre(a, /blue|red/) » <> ball blue sky
showre(a, /(blue|red) /w+/) » <> blue sky # 注意這裡如果不用括號的話,那麼就是匹配blue或者red /w+。
"12:50am" =~ /((/d/d):(/d/d))(..)/ » 0 #這裡第乙個(是最外層的,所以$1是指整個時間。"time is #$1" » "time is 12:50"
"hour is #$2, minute #$3" » "hour is 12, minute 50"
"am/pm is #$4" » "am/pm is am"
# 重複匹配的例子
showre('he said "hello"', /(["']).*?/1/) » he said <<"hello">>
a = "the quick brown fox"a.sub(/^./) » "the quick brown fox"
a.gsub(/[aeiou]/) » "the quick brown fox"
/1, /2, /3 .... (first match, second match, third match, ...)/& (last match)
/+ (last matched group)
/` (string prior to match)
/' (string after match)
// (a literal backslash).
Python學習筆記 4 基本的資料型別
python是一門物件導向的語言,所以應該有物件型別。但是為了使用方便呢,肯定也有基本的資料型別,大體有以下五種吧,依次說明下。這個真的很簡單哦,就是負無窮到正無窮之間的整數,比如 2 1 0 1 2等等。簡單的測試下就是print 1 注意在python 3.6 64 bit 中直接輸入1然後按回...
ruby字串學習筆記4
1 單獨處理字串的字元 如果處理的是ascii碼的文件使用string each byte 注意 沒有 string each方法,string each byte 速度比 string scan快 string scan用於配合正規表示式時使用 foobar each byte 102 f 111...
ruby的基本型別 二
陣列常見運算方法 追加元素 例如 1,2 3 返回 1,2,3 串聯方法 合併兩個陣列 例如 1,2 3,4 返回 1,2,3,4 陣列差集 刪除比較陣列中出現的元素 例如 1,2,3 3,4 返回 1,2 陣列交集 例如 1,2,3 3,4 返回 3 陣列並集 例如 1,2,3 3,4 返回 1,...