![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
文字列中の両括弧を取り除く正規表現を求めています.
入力文は「(文字列1)文字列2」となっています.
両括弧は全角の丸括弧"(",")"と半角の丸括弧"(",")"のペアを見つけ,文字列2を取り出したいのです.
文字列1,文字列2は全角,半角の文字列(主に全角)が来ます.括弧の中に括弧が入れ子(ネスト)する事は想定していません.
例えば,「(グループA)田中」という入力に対しては,「田中」をExcel VBAで抽出したいのです.
正規表現ライブラリを使っていますが,別の方法でも効率良く抽出できるならOKです.
'--------------- 以下を試した結果 ---------------------------------
Dim RE, strPattern As String, reMatch
Set RE = CreateObject("VBScript.RegExp")
' 'strPattern = "^(\(|().*(\)|))$"
' 'strPattern = "(?!.*[(|\(].+?[\)|)])" ' "(グループA)"にマッチする
' 'strPattern = "([\(.+?\)|(.+?)])"
' 'strPattern = "(^[(|\(].+?[\)|)])"
' strPattern = "^(?!.*[(|\(].+?[\)|)])" ' ""
' 'strPattern = "\(.+?\)"
' strPattern = "^(?!.*[\(.+?\)|(.+?)])" ' ""
' strPattern = "(?!.*[(.+?)])" ' ""
' strPattern = "(.+?)" ' "(グループA)"にマッチする
' strPattern = "^[?!.*((.+?))]" '
' strPattern = "[^((.+?))]" '
' '.Pattern = "^(?!.*xyz)"
' 'strPattern = "^(?!.*([.+?]))" ' ""
' strPattern = "[^(.*)]" '"グ","ル",,,
' strPattern = "^(?!([.*]).*)" ' ""
' strPattern = "^(?!(.*).*)" ' ""
' strPattern = "^(?!([.*]))" ' ""
strPattern = ").*$" ' ""
With RE
.Pattern = strPattern
.IgnoreCase = True
.Global = True
Set reMatch = .Execute(str)
If reMatch.Count > 0 Then
str = reMatch(0).Value
End If
End With
'開放
Set reMatch = Nothing
Set RE = Nothing
No.1ベストアンサー
- 回答日時:
取り敢えず正規表現です。
Set RE = CreateObject("VBScript.RegExp")
strPattern = "(.*)|\(.*\)"
With RE
.Pattern = strPattern
.IgnoreCase = True
.Global = True
If .test(str) Then
str = .Replace(str, "")
End If
End With
回答ありがとうございました.
このとおりでできました.
(返信したつもりでしたが,書き込まれておりませんでした.失礼しました.)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) 正規表現を用いての並び替え 7 2022/04/04 09:27
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) エクセルの数式で添付写真のものを入力していてわからないのですが、こちらの通り[]括弧も入れて入力しま 4 2023/02/05 18:33
- Excel(エクセル) 条件式書式の設定 3 2023/07/04 05:34
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
エクセル 置換又は関数でかっことカッコの中を全て消す。
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
エクセルのマクロで結合セルに値を貼り付けたい
Excel(エクセル)
-
5
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
6
Excel2003 VBA 「*」を含む文字列の置換方法は?
Visual Basic(VBA)
-
7
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
8
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
9
split関数で区切り文字がない場合
Visual Basic(VBA)
-
10
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
ハイパーリンクでジャンプした先のセルを画面の一番上に表示させたいです。
Excel(エクセル)
-
13
【ExcelVBA】全シートのセルの数式を値に変換する事は可能でしょうか?
Visual Basic(VBA)
-
14
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
15
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
16
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
17
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
18
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
19
フォーム上のリストボックスに重複して表示しています
Visual Basic(VBA)
-
20
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現 文中空白可能
-
なぜインターネットでは半角カ...
-
全角英数文字が嫌われる理由を...
-
全角半角変換 C++/CLI
-
文字の入力で横バー上段、中断...
-
VBAのコマンドボタンの文字列の...
-
awkの BEGIN{RS=""} で空行を削...
-
fputsで改行できない
-
PHPで<a>タグ内からURLと文字を...
-
ソースコードの1行が長いとき...
-
コンボボックスの項目中に改行を
-
「続行するには何かキーを押し...
-
タグにはさまれている文字以外...
-
VBA テキストボックスの行数取得
-
SQL Serverで文字コードUTF-8
-
正規表現で記号 & アンドの検索...
-
正規表現で特定のHTMLタグのク...
-
PHPで変数から1行目だけを取得...
-
テキストファイルから改行コー...
-
ファイルから読み取った改行文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルのCOUNTIFが正しくカウ...
-
全角括弧と全角読点の間隔を狭...
-
半角記号、全角記号を含む正規...
-
特定の文字を簡単な操作で半角...
-
全角英数文字が嫌われる理由を...
-
VBAで英数字入力チェックしたい。
-
エクセルでの漢字、カタカナ、...
-
全角半角変換 C++/CLI
-
XMLのタグ名の禁則文字
-
VBScriptである文字列に半角文...
-
記号は半角と全角どちらがよい...
-
文字列中の両丸括弧を取り除くV...
-
パソコンで全角、半角文字の切...
-
HTML5の「pattern」属性で前後...
-
Replace関数は文字数の制限ある...
-
Excel2002 一桁数字だけ全角に置換
-
エスケープ文字にstr_replaceが...
おすすめ情報