改行文字を削る (rstripメソッドでも実現できる):
import re r = re.sub("\n", "", r)
標準入力を読んで、特定のパターンにマッチする行だけを標準出力に出す。
import sys import re p = re.compile('^<W') # starts with '<W' if __name__ == '__main__': for line in sys.stdin: line = line.rstrip() if p.match(line): print line
または
import sys import re if __name__ == '__main__': for line in sys.stdin: line = line.rstrip() if re.match('^<W', line): print line
XMLの属性 WORD="xx" の中身を取り出す。行全体がマッチする正規表現を書かなくてはならない。
mo = re.match(r'.* WORD=\"(\S+)\".*', line) if mo: word = mo.group(1)
数字の直後のMBをmegabyteに変換する:
>>> import re >>> c = re.compile(u'(\d+)MB') >>> c.sub(r"\1megabyte", "122.8MB") '122.8megabyte'
Ruby における正規表現のメモ。
# 最後の空白から行末まで "hoge hoge hoge 2009 nishi".match(/(\S*)$/)[0] #=> "nishi" "hoge hoge hoge 2009 nishi ".match(/(\S*)$/)[0] #=> ""
文字列.match の返り値(配列)の [0] はマッチした全体。[1] 以降は () で指定された箇所。
phpの正規表現命令は preg 系を使う。
ereg系は PHP 5.3 から非推奨になった。
$result に含まれる wiki 的な表記を a タグに変換する
// before: [[hoge:http://hoge.com]] // after: <a href="http://hoge.com">hoge</a> $result = preg_replace("/\[\[(.+):\s*(http:.+)\]\]/", "<a href=\"$2\">$1</a>", $result);
$line の先頭に "* " があったら h2 タグに変換して $result に格納する
if (preg_match("/^\* (.+)/", $line, $matches)) { $result = "<h2>" . $matches[1] . "</h2>" . "\n"; }
改行を含む文字列 $body から " Token xxxxx " 形式の文字列を取り出す:
$pattern = '/.* Token (\S+) .*/s'; if (preg_match($pattern, $body, $matches)) { //var_dump($matches); $token = $matches[1]; echo $token; }