2011-03-21 29 views
0

我想解決如何使用正則表達式來做些事情。正則表達式檢查數字到n根不是浮點數

基本上,我想檢查一個數是否等於n的冪數(即2)。

例如,我需要一些檢查數字i == 2,4,8,16或32然後執行某些操作的東西。

編輯: 問題在於數字實際上來自遺留數據庫中的varchar列。我可以解析出來,然後做一些推薦的kobi,但是還有一個問題是數字在分隔列表中,即(1,2,3,32)。因此,我認爲使用正則表達式會更容易,因爲它會節省很多步驟。

在此先感謝。

+0

商務或休閒? – Kobi 2011-03-21 06:38:59

+0

這是業務:) – 2011-03-21 06:41:54

+2

所以不要使用正則表達式 - 它絕對是錯誤的。你可以簡單地檢查一下數字的對數,看看你是否得到一個整數 - http://www.wolframalpha.com/input/?i=log%282%2C+8%29 – Kobi 2011-03-21 06:46:09

回答

0

在Python:

import re 
a = str(bin(number)) 
if re.match(r"[^1]*1[^1]*$", a): 
    print "power of two" 
+0

這不是'^ 10 * $'嗎?另外,我認爲2只是一個例子,OP可能需要不同的基礎,我相信(好吧,希望)Python有更好的方法來處理這個問題... – Kobi 2011-03-21 07:06:02

+0

正則表達式需要擴展才能找到任何數字的平方根值等於整數。例如,在它現在的狀態下,它需要檢查數字是2,4,8,...,512. – 2011-03-21 07:19:46

+0

@user - 在你問「2的n次冪」的問題 - 例如2^2,2^3,2^4 ...現在你正在談論「具有等於整數的平方根值」,例如, 1^2,2^2,3^2 ... - 幾乎不一樣! – Kobi 2011-03-21 07:24:05

相關問題