我是新來的正則表達式。我在SQL查詢中使用正則表達式。並且要顯示包含以下內容之外的所有記錄:字母數字字符,白色空格,字符串之間的連字符( - ),最後和字符串之間的點(。)。 我已經能夠做字母數字字符和空格。但連字符和點正在產生問題。什麼將是正則表達式允許字母數字字符,空格,介於兩者之間,點在最後或之間
例如:「first.name」,「firstname」。不應該來,但「名字」應該在結果。
「名字」不應該出現,而是「 - firstname」和「firstname-」應該出現在結果中。
截至目前我已經做到了這一點。
SELECT * FROM my_table WHERE column1 like '.%' or column1 like '-%' or
regexp_like(column1 ,'[^[:alnum:]^[:blank:]]');
上述查詢的工作方式是它允許在字符串中的任意位置使用點和連字符。如上所述,不是我想要的地方。
任何人都可以幫助我。
你說*不是字母數字*,但例子是'.firstname'。這不清楚。也許你只需要'REGEXP_LIKE(column1,'^ [.-]?[[:alnum:] [:blank:]] + - ?$')'? –
,因爲.firstname在開頭有點。所以這就是爲什麼它應該填充。 –