電子書籍の厳選無料作品が豊富!

早速ですが、
現在、指定された単語を含む文字列を抜き出す様なcgiを作っています。

現在のコーディングです。

foreach $line (@lines) {
$an = index $line,$skey;
if ($an >= 0) {


上記では、 $skey と全く同じモノしか検索(抽出)出来ないため、
今回、$skey が英字の時は、大文字、小文字、およびその混在でも
抜き出せるように改善したいと思っています。

例えば、abc と指定されたら、abcでもABCでもAbcでも抜き出せるような。
(英字と数字の混在や、全角は対象外で構いません。)

考え方として、
指定されたキー(文字列)を基に大文字、小文字を作り、
(uc関数、lc関数)
両方で検索してやれば殆どokと思うのですが、
混在の場合はどうやればいいか思いつきません。

また、
そもそも指定されたキーが英字であるかの判断方法が分かりません。
(大文字、小文字の変換は英字に限りますので)

ということで、
(1)大文字、小文字の混在時の対応方法
(2)指定されたキーが英字であるかの判断方法

を教えていただきたくお願いします。

A 回答 (1件)

(1) については


・すべてのものを大文字 (か小文字) に統一する
・index を捨てて m//i
くらいは思いつくかな.
(2) は (どうしてそういうことをしたいのかちょっと分からないんだけど) キーに対して
/[^[:alpha:]]/
でマッチさせるとか.
    • good
    • 0
この回答へのお礼

早速有り難うございました。
m//iで全てが解決しました。

お礼日時:2011/01/19 13:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!