0

正規表現を使用して 1,186.55 を 1186.55 に置き換えるにはどうすればよいですか?

私の検索文字列は

\b[1-9],[0-9][0-9][0-9].[0-9][0-9]

これは正常に動作します。ただ、交換部品が動かないようです。

4

4 に答える 4

2

あなたの質問の情報は非常にまばらです。私はできるだけ一般的に答えようとします:

量指定子を使用して正規表現を少し短くすることができます。最初のステップでこれを行います

\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
于 2013-09-18T21:02:53.237 に答える
1

パイソン:

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(',', '')
于 2013-09-18T21:13:23.137 に答える
0

コンマを削除したいだけの場合は(JavaまたはC#で)実行できます:

str.Replace(",", "");

(Java ではreplace)

于 2013-09-18T20:26:13.843 に答える