4

3桁以下の数字を削除したいのですが。誰かがこれを行う正規表現で私を助けてくれますか?

現在、私のコードは見つけたすべての数字を削除します。

     # Cleans Numbers
     def cleanNumbers(stringToClean):
       stringToClean = re.sub(r'[0-9]*', r'', stringToClean)

       print 'String after cleaning : %s' %stringToClean

       return stringToClean

数字はスペースで囲まれます。関数に渡す文字列の例:

しばらくすると、Win8クライアントで接続が切断されます。[永続性]1231 22 333 4444 554665 645fdgf45 ds3434 457870978934787843 345342kl

上記の関数を次のように呼び出します。

# Main function, calls other functions          
def main():

   # Parsing the input query
   searchQuery = open('input.txt', 'r').read()
   print 'Input query : %s' %searchQuery

   # Cleaning the input query
   string = CleanUpText.cleanNumbers(searchQuery)
4

4 に答える 4

9

\b[0-9]{1,3}\b3 桁までの数字のブロックを検索します。

于 2013-02-26T21:21:28.680 に答える
1
re.sub(r'[0-9]{,3}',r'',stringToClean)
于 2013-02-26T21:16:37.073 に答える
1

「3 か 3 未満」という質問を修正しました。

それを考えると、それは次のように単純でなければなりません:\b\d{1,3}\b

于 2013-02-26T21:35:26.813 に答える
-1

You could use a regex like this

r'\b[0-9]{1,2}\b'

Edit: Sorry wrote my answer to fast without really thinking. You have to use boundries so you don't capture 3456 for example

于 2013-02-26T21:11:52.237 に答える