• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現を使って、文字列切り取り)

正規表現を使った文字列切り取りについての質問

このQ&Aのポイント
  • 正規表現を使用して、一重破線のみを切り取る方法について教えてください。
  • 質問者は.NETで正規表現を使用して文字列切り取りを行いたいとしています。
  • 質問者は具体的なコード例を提供しており、正規表現の記述方法を教えてほしいとしています。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>こちらも、ヒットしませんでした 改行コードの扱いが違っていたようです perlで\nとしている部分を \r\nにしないといけないようです。 >CREATE PROCEDURE.*?\n(?<parameter>.*?)AS .*?にすると最短でマッチしようとするので、手前のASでマッチしてしまします。 あと、[]は実際には無い場合があるのですか? 改行AS改行で終わるということを制限するために "CREATE PROCEDURE.*?\n(.+)(\r\n)AS\r\n" として Result(("$1$2"))) とすればいいかもしれません。

kyoto-ramen
質問者

お礼

ありがとうございました。 頂いたやり方でいけました。 正規表現 すごく覚えること多いですね。 ぜひ使いこなせるようになりたいです・・・ また、質問することもあるかもしれませんが、 その際はよろしくお願い致します。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

Result(("${parameter}"))) は Result(("$1"))) になります

kyoto-ramen
質問者

お礼

ありがとうございます。 そのような書き方でも、マッチした部分の値をとることが できるんですね。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

"CREATE PROCEDURE \[.*\]\s(.+)AS\n" より "CREATE PROCEDURE \[.*\]\s+(.+)AS\n" のがいいかも

kyoto-ramen
質問者

お礼

こちらも、ヒットしませんでした>< とりあえず、 CREATE PROCEDURE.*?\n(?<parameter>.*?)AS という記述にしたら期待したものがとれるように なりました。 (途中にsaasなどのつづりがあってもそちらでヒットしてしまい、不完全です...)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>Dim strRegex As String = "CREATE PROCEDURE(?<parameter>:a+)AS" >Dim reg As New System.Text.RegularExpressions.Regex(strRegex, RegexOptions.Multiline Or RegexOptions.IgnoreCase) の部分を Dim strRegex As String = "CREATE PROCEDURE \[.*\]\s(.+)AS\n" Dim reg As New System.Text.RegularExpressions.Regex(strRegex, RegexOptions.Multiline Or RegexOptions.Singleline Or RegexOptions.IgnoreCase) にする。 ちなみにPerl、同じ意味 $/="//\n"; while(<DATA>){ print $1 if /CREATE PROCEDURE \[.*\]\s(.+)AS\n/s; } __END__ -- aaaaaaaaaaaaeefefe CREATE PROCEDURE [opsys_parameter] @いつから AS datetime, -- 対象日 | @customer_no int, -- @aaa varchar(32) AS xxxxx bbbb ccc

kyoto-ramen
質問者

お礼

ご回答ありがとうございます。 早速ためさせていただきましたが、 正規表現に該当しないため、今のところ 動いておりません。

関連するQ&A