質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

1回答

619閲覧

正規表現で、変数の添字の数字は検出せず、小数点を含む数字のみ検出したい

yasu20190201

総合スコア25

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2022/11/25 11:34

編集2022/11/30 12:58

前提

pythonの正規表現を用いた置換で、文字列化した数式のうち、小数点を含む数値のみを置換したく、変数の添字の数字は置換したくない。

実現したいこと

下記のような文字列で、「21」、「56.22」は正規表現で検知したいが、ローマ字に続く「a14」や、アンダーバーに続く「b_44」は検知したくない。
そのような正規表現の記述法(下記のreg)があれば、ご教示お願いします。

python

1text = '21 = a14 + 56.22 + b_44' 2reg = re.compile('********') 3print(reg.sub('AA', text)) 4# 期待する出力:'AA = a14 + AA + b_44'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/11/25 12:11

この前、同様の質問に回答しましたが???? 応用が全く出来ないと言うことでしょうか?
yambejp

2022/11/29 00:46

pythonであればタグ付けしてください
guest

回答1

0

pythonの環境がないのでとりあえずjsで

javascript

1const txt = '21 = a14 + 56.22 + b_44'; 2const reg = /(?<=^| )\d+(\.\d+)?/g; 3console.log(txt.match(reg)); 4const result=txt.replace(reg,'AA'); 5console.log(result);

たとえば 2.3.4のような不適格の文字列には対応していないので
どう例外処理をいれるか(いれないか)を検討する必要があります

投稿2022/11/29 01:03

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問