• ベストアンサー

VB2005での正規表現

 文字列から特定の条件をみたす単語を探す処理をしたいのですが。正規表現という言葉まではたどり着きましたが。まだ初めて間もないため私のレベルでは使い方がわかりません。すいませんが教えてもらえないでしょうか? 開発環境:Visual Basic 2005 Express Edition 例。PRINTERNAMEから始まりPORTNAMEまでの中の文字列を拾いたいのですが。PRINTERNAME**PORTNAME の**部分の文字列を抜き出したいのです。 すいませんがよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

> ()のカッコを含む文字列の場合はどのように正規表現であらわしたらいいのでしょうか?  正規表現を記述するときに特別な意味を持っているキャラクタ (メタ文字とかメタキャラクタといいます)を、 そのキャラクタ自体の意味で使いたい場合は、 その前に \ を置いてやれば良いです。 \(カッコに囲まれた文字列\) のような感じです。 正規表現の記述法にはイロイロ方言みたいなものがありますが、 とりあえずはこの辺で基本を抑えておくとよいかも。 サルにもわかる正規表現入門 http://www.mnet.ne.jp/~nakama/regexp1.html

ktksystem
質問者

お礼

度々すいませんでした。何とか解決できました。ありがとうございました。

その他の回答 (3)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

基本的なやり方は↓を参照してもらうとして 正規表現を使って文字列を検索する: .NET Tips: C#, VB.NET, Visual Studio http://dobon.net/vb/dotnet/string/regexmatch.html 正規表現として (?<=PRINTERNAME).+?(?=PORTNAME) を使えばマッチオブジェクトの Valueを参照すればお望みの 部分が取れているはずです。

ktksystem
質問者

補足

さっそくsakusaker7に紹介していただいたサイトで質問の文字列パターンはなんとか解決したのですが。()のカッコを含む文字列の場合はどのように正規表現であらわしたらいいのでしょうか? "で囲えばいいのでしょうか?すいませんが教えてもらえないでしょうか? たとえば、RELATION ((**,000),,,,,,,)の**部分を抜き出したいのですが。そのまま()を使うと駄目でした。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

UNIX系と違いマイクロソフト系は正規表現は後追い敵ではないかと思います。 わたしなぞわかりませんが (1)MSワードの世界で検索演算子が豊富にある。2000以後か? (2)http://www.microsoft.com/japan/msdn/columns/scripting/scripting051099.aspx のようにVBScriptの世界では似たようなものができている (3)プログラムで組む。InStr、InStrRev 関数などを使って組む。 などいかがですか。(外部の方が検索に参加するような)汎用の検索でなければそう複雑ではないのでは?

ktksystem
質問者

お礼

アドバイスありがとうございます。INSTRという便利な関数があったのですね。参考にさせていただきます。

noname#39970
noname#39970
回答No.1

PRINTERNAME(.*)PORTNAME こんな感じ

関連するQ&A