這篇只是當作自己的筆記。
假設兩個字串分別是 「<疾病>發生<因>子」和「肩<背>」,要萃取出小於<符號和大於>符號夾起來的字詞,Ruby的Regular expression可以寫成 /\<([^\<^\>]+)\>/u
。 u
是指以 utf-8 長度辨認 Regular expression。
這樣寫的話,可以取出「疾病」,「因」和「背」,唯不適用於巢狀的小於和大於符號夾起來的字詞,例如「<疾<病>>發生因子」。
另外,Ruby的 Regular expression中,括號“(”和“)”結合String的scan方法,可以幫助取出括號內的字詞,例如上面的例子「<疾病>發生<因>子」,用以下程式碼:可以取出小於和大於符號夾起來的字詞(central Pattern):
array_re_matchedPattern = Array.new # store the central Patterns
pattern = “<疾病>發生<因>子”
re_pattern = <meta charset="utf-8">/\<([^\<^\>]+)\>/u
pattern.scan(re_pattern) { | matched |
matched.each{ |centralPattern|
array_re_matchedPattern << centralPattern
}
}
即可取得「疾病」和「因」。