Fedora Core 500の技
Valid XHTML 1.0!
正当なCSSです!

TOP > Linux > Fedoraの技 > 301-400 > 303

正規表現とは

正規表現(Regular Expression)はLinuxなどで利用できる文字列のパターンを表現する仕組みです。大変強力であり、複雑でもあります。awk, grep, perl, sedコマンドなどで利用することができます。

メタキャラクタと呼ばれる特別な意味を持つ記号を利用して表記します。代表的なメタキャラクタには下記のものがあります。

. 改行以外の任意の1文字
* 直前の文字の0回以上の繰り返し
^ 行頭に一致
$ 行末に一致
[] 範囲の指定、指定のいずれか1文字
\(バックスラッシュ) メタキャラクタの否定する

下記は"."を使った例です。tcpで始まりxで終わる単語で間に任意の2文字が入るものを指定しています。

$ grep 'tcp..x' /etc/services
tcpmux     1/tcp         # TCP port service multiplexer
tcpmux     1/udp         # TCP port service multiplexer

下記は"*"を使った例です。sの0回以上の繰り返しですのでhttpもhttpsも対象となります。

$ grep 'https*' /etc/services
〜略〜
http      80/udp     www www-http  # HyperText Transfer Protocol
https      443/tcp             # MCom
〜略〜

下記は"^"を使った例です。nameserverで始まる行を指定しています。

$ grep '^nameserver' /etc/services
nameserver   42/tcp     name      # IEN 116
nameserver   42/udp     name      # IEN 116

下記は"$"を使った例です。Telnetで終わる行を指定しています。

$ grep 'Telnet$' /etc/services
rtelnet     107/tcp             # Remote Telnet

下記は"[]"と使った例です。[12]では1か2のどちらか、[1-4]では1から4までのいずれかという意味になります。

$ grep 'netrjs-[12]' /etc/services
$ grep 'netrjs-[1-4]' /etc/services

下記は"\"を使った例です。$をメタキャラクタではなく、そのまま検索しています。この場合''で括って利用します。

$ grep '\$' /etc/services
# $Id: services,v 1.40 2004/09/23 05:45:18 notting Exp $

2005-12-03 作成