正規表現で$
記号で囲まれた部分のみにマッチングするにはどのように書けば良いでしょうか。
例えば、
tex
1ほげほげ。 2$r = 3$であり$z = 4r^2$でして\hoge{roll cake}だから 3$f(r) = 5r$なので\iroha{}と言うcreator。
みたいな文字列から\hoge{roll cake}
、\iroha{}
、creator
に含まれるr
には反応せず、r = 3
、z = 4r^2
、f(r) = 5r
に含まれるr
だけを一括でX
に変換したいです。
$ $
ではなく開始と終了が異なる括弧( )
とかであればすぐにできると思いますが、同じ文字だと内外を判定するのは難しいですか?
一応、$
記号は文字列中に必ず偶数回しか現れず、奇数番目と偶数番目の間を「内側」と仮定してもらって大丈夫なのですが。
エディタのvscodeの置換機能で簡単にできればなという思いなので、ガッツリ文字列処理するプログラムを書くのはNGとさせてください。
以上、いかがでしょうか。
補足
上の例では少し条件を緩くしてしまったみたいなので、もう少し厳しい変換対象の文字列を以下に示します。
tex
1ほげほげ。 2$r = 3$であり$z = 4r^2$でして\hoge{roll cake}だから 3$f(r) = 5r$なので\iroha{}と言うcreator。 4$s = 3$ run $\tr A$ほげほげorzorzです。$g(r) = \create{3r} + \func{1+r}$もお願いします。
こんな感じの文字列で$
内のr
を置換したいです。
あと、$
内であっても$\create{3r}$
の\create
部分のr
は置換せず、{3r}
の方のr
は置換対象としたいです。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/10 16:49