正規表現を使用して 1,186.55 を 1186.55 に置き換えるにはどうすればよいですか?
私の検索文字列は
\b[1-9],[0-9][0-9][0-9].[0-9][0-9]
これは正常に動作します。ただ、交換部品が動かないようです。
あなたの質問の情報は非常にまばらです。私はできるだけ一般的に答えようとします:
量指定子を使用して正規表現を少し短くすることができます。最初のステップでこれを行います
\b[1-9],[0-9]{3}.[0-9]{2}
ほとんどの場合、 で置き換えることもできます[0-9]
。\d
また、より読みやすい IMO です。
\b\d,\d{3}.\d{2}
これで、交換部品に行くことができます。ここでは、保持したい部品を保管する必要があります。その部分をキャプチャ グループに入れ、括弧を配置することでそれを行うことができます。これが検索パターンになります。
\b(\d),(\d{3}.\d{2})
そのため、置換文字列でこれらのキャプチャ グループの一致したコンテンツにアクセスできるようになりました。最初の開き括弧は最初のグループ、2 番目の開き括弧は 2 番目のグループ、...
\1
ここで 2つの可能性があります。$1
置換文字列は次のようになります
\1\2
また
$1$2
パイソン:
def repl(initstr, unwanted=','):
res = set(unwanted)
return ''.join(r for r in initstr if r not in res)
正規表現の使用:
from re import compile
regex = compile(r'([\d\.])')
print ''.join(regex.findall('1,186.55'))
str.split()メソッドの使用:
num = '1,186.55'
print ''.join(num.split(','))
str.replace()メソッドの使用:
num = '1,186.55'
print num.replace(',', '')
コンマを削除したいだけの場合は(JavaまたはC#で)実行できます:
str.Replace(",", "");
(Java ではreplace
)