掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
正規表現を使用した置換で、直前に特定の文字列がない場合にのみ置換するには? (ID:80430)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
正規表現を使用した置換で、直前に特定の文字列がない場合にのみ置換するには? 例えば、任意の文字列aaをbb等に変えたいと思っています。(本当は太字にしたい) しかし、リッチテキストを直接いじっているのですがRTFでは、2バイト文字は \\\'[0-9a-z][0-9a-z]\\\'[0-9a-z][0-9a-z]の形でエンコードされます。 すなわち 【1】aa は \'81\'791\'81\'7aaa と表現されるわけですが \'7aのaにヒットしてしまい、壊れてしまうんです。 今のソースは大体こんな感じです。 Dim objRegExp As New regExp '正規表現オブジェクトを作成 Dim strExpression As String Dim strReplaceWith As String Dim strPattern As String strPattern = "(\\\'[0-9a-f][0-9a-f])" + "(" + rtfEnc(dic.Item("separateString")) + ")" strReplaceWith = "$1\b " + "$2" + "\b0 " strExpression = rtfRead objRegExp.Pattern = strPattern '検索パターンの設定 objRegExp.IgnoreCase = True '大文字小文字区別の設定(区別する) objRegExp.Global = True '置換候補の設定(文字列内のすべてのマッチにテストする) strExpression = objRegExp.Replace(strExpression, strReplaceWith) 'Replace メソッドで文字列の置換 .TxtBodyFileContents.TextRTF = strExpression 「前に…がない場合のみ」ってよくありそうなものだと思うのですが、 これって正規表現を使用して1回の処理で行うことは可能でしょうか? もしできるなら、よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.