2014-08-28 83 views
2

我想要一個正則表達式來檢查一個字符串是否只有空格。正則表達式來檢查一個字符串是否只有空格

例:「」

我目前使用這個表達式

[/^ *$/] 

但它也檢測已單詞一個字符串。

例:「ABC XYZ」

我想用這個表達式在PostgreSQL函數像下面

IF r.colmn IS NULL OR CAST(r.colmn as text) = '' 
     OR CAST(r.colmn as text) ~ '[/^ *$/]' -- regex not working 
THEN 
    RAISE NOTICE 'Do something';  
END IF; 

是否有任何正則表達式我可以在PostgreSQL函數使用只檢查一個字符串只有空格?

+2

我不明白爲什麼一個正則表達式是必要的。 '如果trim(r.colmn)='''會做同樣的事情。並且可能效率更高 – 2014-08-28 07:56:49

+0

我同意@a_horse_with_no_name – 2014-08-28 08:10:36

+0

@a_horse_with_no_name,我是新來的postgresql,因爲你建議trim()更有效率,所以我會使用它。謝謝。 – chaitanya89 2014-08-28 08:59:50

回答

1

你需要從你的正則表達式刪除[//]

IF r.colmn IS NULL OR CAST(r.colmn as text) = '' 
     OR CAST(r.colmn as text) ~ '^ *$' -- regex not working 
THEN 
    RAISE NOTICE 'Do something';  
END IF; 
+0

謝謝,它的工作和網站說我只能在10分鐘後接受你的答案。你能解釋爲什麼我需要刪除它們嗎? – chaitanya89 2014-08-28 07:55:43

+0

它需要刪除,因爲Postgres正則表達式不需要像PHP那樣的任何分隔符,並且使用'['和']'使得正則表達式無效,因爲'['和']'中的字符被解釋爲字符類。 – anubhava 2014-08-28 08:03:15

相關問題