いくつかのプレフィックスと余分な文字を削除した後、特定の単語を抽出するために、Excelで一連の文字列をクリーンアップしようとしています。最初は、FIND、LEFT、MIDなどでこれを試していました。そして、この役に立つポストを見つけて、正規表現で手を試してみました。Excelから単語の特定のプレフィックスを削除する正規表現パターン
https://superuser.com/questions/794536/excel-formulas-for-stripping-out-prefix-suffix-around-number
私は正規表現の引数を取るの削除と呼ばれるが与えられたUDFを使用していました。今、私は削除したいアイテムをすべて削除できません。
添付のExcelには、私が何を試したか、そして私が見ている答えを見ることができます。 削除したいプレフィックスは次のとおりです。 括弧で囲まれた最初の数字 - 理想的には別の列に入れてください。 ハイフンの前には、 'l-'、 'al-'のような数字があります。 、次にこれらの接頭辞があります。 バイ 億FA WA WAL
どのように私は上記のすべてのプレフィックスを削除します単一の正規表現を書くのですか?データIが含まれているXLSMファイルへのリンク 機能の削除(文字列としてobjCellとしてレンジ、strPattern)
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Global = True
RegEx.Pattern = strPattern
Remove = RegEx.Replace(objCell.Value, "")
エンド機能ここで
されています。ここでは
は、私が使用していますUDFです持っている: https://www.dropbox.com/s/et9ee727ompj5fl/Regex%20Trials.xlsm?dl=0、ここでは、私が探しています何を表示するスクリーンショットです:
私はVBAでどのように機能するかを正規表現パターンを知りませんが、私は」あなたを想定し文字列の先頭に正規表現を固定するにはキャレットシンボルが必要で、グループ式には縦のバーシンボル、オプションのマッチでは疑問符シンボルが必要です。 perl互換の正規表現では、(?!\ w)を使用して、単語の文字が続かないように指定することもできます。たとえば、 'Regex.Replace(Obj.CellValue、" ^(l- | al- | bi | bil | fa | wa | wal) ")'または '^(l- | al- | bi | bil | fa | wa | wal)(?!\ w) 'を実行します。それは役に立ちますか? – rubystallion
@rubystallion、ありがとう。それは間違いなく助けになります。投稿されたすべてのソリューションの中で、あなたのソリューションは私に何か具体的なことを教えてくれました。正規表現パターンはVBAでも他の言語と同様に動作すると思います。少し遊んだ後、私はこのパターンが(l- | al- | bi- | bil | fa | wa- | wa)の多くの答えにマッチすることを発見しました。ここで、私がキャレットシンボルを持っていれば、それは動作していないようです。どうして?この場合も、[0-9 :()]を使用して括弧内の数字を削除するために別の正規表現を書く必要がありました。両方を単一の正規表現に結合する方法はありますか? –