コンテンツへスキップ

位置を表す

\b 単語の境界にマッチ
\B 単語の境界以外にマッチ
^  文字列(行)の先頭にマッチ
$  文字列(行)の終端にマッチ

前方参照

ラモス(?=瑠偉) ラモスのあとに必ず瑠偉があるラモスが対象
ラモス(?!=瑠偉) ラモスの後に必ず瑠偉がないラモスが対象 

 後方参照

(?<=東京都)北区 直前に東京都がある北区が対象 
(?<!東京都)北区 直前に東京都がない北区が対象

英文の単語にマッチ

\b\w+\b

htmlタグにマッチ

<(".?|'.?|[^'")?>

"html"内の特定のタグの要素を取り出す

<title>(.</em>?)</title>

html内の特定のタグの要素を取り出す

<?"|'.?'|[^'"])?>(.*?)

郵便番号にマッチ

\d{3}-\d{4}

電話番号にマッチ

0\d{1,4}-\d{1,4}-\d{4}

メールアドレスにマッチ

[a-zA-Z0-9_-.]+@[a-zA-Z0-9-.]+.[a-zA-Z]+

IPアドレスにマッチ

\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}

空行にマッチ

^\s$
^$

ファイル名の各要素を取り出す

 ((.)/)?(.*?)(.(.+))?

ファイル名にマッチ(linux)

[/\w-]+

ファイルパスにマッチ

(/[\w-]+)+

標準入力からのパターン検索 (grep)

!/usr/bin/env perl
while() { 
print if /ARGV[[0]/o;
}

置換

!/usr/bin/env perl
while(){ 
s/$ARGV[0]/$ARGV[1]/go;print;;
}

 

Python 3.5.5で動作確認済み

■ 使い方
henkan.py [置換前文字列] [置換後文字列] [Inputファイル名] [Outputファイル名(省略した場合は画面出力を行う)]

■ コード

#!/usr/bin/python
import os,sys

n = len(sys.argv)

if not 3 <= n <= 5:
        print("引数が不足しています。")
else:
        stext = sys.argv[1]
        rtext = sys.argv[2]
        input_file = sys.stdin
        output_file = sys.stdout
        if n > 3:
                input_file = open(sys.argv[3])
        if n > 4:
                output_file = open(sys.argv[4], 'w')
        for s in input_file:
                output_file.write(s.replace(stext, rtext))
        output_file.close()
        input_file.close()