プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。
自分史上初めて投稿します。

テキストファイルを簡単に操作出来るということを聞いて、さいきんVBSを勉強し始めました。
そこで、特定のファイルの中身を読み込んで配列関数を使い配列に格納した後、特定の文字列が含まれる場合には別の文字列へと変換したいと思っているのですが、正規表現が上手くいきません(汗)

どなたか助けていただけませんでしょうか?
それともそもそも正規表現が使えないなんてことはないですよね・・・?


よろしくお願いいたします。
ちなみに書いたコードは↓

Set WSHFso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim strSearchWord

Set tmpFile = WSHFso.OpenTextFile("C:\Documents and Settings\●●●\○○.txt")

Do Until tmpFile.AtEndOfStream
tmpLine = tmpFile.ReadLine
strSearchWord = strSearchWord & tmpLine & vbcrlf
Loop


Dim SearchWord
SearchWord = split(strSearchWord,"")


Select Case SearchWord(9)


'ここで『東京』というワードが含まれる場合に別処理を走らせたいのです・・・。
Case "*" & "東京" & "*"

msgbox SearchWord(10)

Case Else

msgbox SearchWord(101)

End Select

A 回答 (2件)

配列SearchWordの要素の文字列を置換したいのでしたら下のような感じでしょうか。

Select Caseステートメントでは正規表現は使えないと思います。

Windows XP SP2 + WSH VBScript 5.6で試しました。

-----
Dim strSearchWord
Dim SearchWord
strSearchWord = "東京 東京駅 西東京 西東京は東京の西 品川"
SearchWord = Split(strSearchWord," ")

Set regEx = New RegExp
regEx.Pattern = "東京"
regEx.Global = True

For ix=0 to UBound(SearchWord)
SearchWord(ix) = regEx.Replace(SearchWord(ix), "神田")
Next

WScript.Echo Join(SearchWord, " ")
-----

なお、特定の単純な文字列が含まれているか調べるには、正規表現を使わなくてもInStr関数でよさそうです。「別処理」でやりたいことの内容にもよりますが。

-----
if InStr(SearchWord(ix), "東京")<>0 then
WScript.Echo SearchWord(ix) & " は東京を含みます。"
else
WScript.Echo SearchWord(ix) & " は東京を含みません。"
end if
-----
    • good
    • 1
この回答へのお礼

ちょっと改良して使ってみたら意図していることが出来ました!
ありがとうございます。

ひじょうに助かりました!

お礼日時:2007/08/14 12:06

Like 演算子を使用します。



詳細は、下記URLなどを参考に

http://www7.plala.or.jp/imajo/ke/samp/samp03.html

他にもいっぱいありますよ。
    • good
    • 0
この回答へのお礼

このサイトは初めてみました。
勉強したての私には非常に参考になります!

ありがとうございます!

お礼日時:2007/08/14 12:07

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A