乱码乱a∨中文字幕,在线免费激情视频,亚洲欧美久久夜夜潮,国产在线网址

  1. <sub id="hjl7n"></sub>

    1. <sub id="hjl7n"></sub>

      <legend id="hjl7n"></legend>

      當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

      SQL Anywhere正則表達(dá)式語法與示例

       2020-11-24 14:49  來源: 腳本之家   我來投稿 撤稿糾錯

        阿里云優(yōu)惠券 先領(lǐng)券再下單

      這篇文章主要介紹了SQL Anywhere正則表達(dá)式語法與示例,需要的朋友可以參考下

      正則表達(dá)式語法

      通過 SIMILAR TO 和 REGEXP 搜索條件以及 REGEXP_SUBSTR 函數(shù)支持正則表達(dá)式。對于 SIMILAR TO,正則表達(dá)式語法符合 ANSI/ISO SQL 標(biāo)準(zhǔn)。對于 REGEXP 和 REGEXP_SUBSTR,正則表達(dá)式的語法和支持符合 Perl 5。

      REGEXP 和 SIMILAR TO 使用正則表達(dá)式是與字符串 相匹配,而 REGEXP_SUBSTR 使用正則表達(dá)式則是與子串 相匹配。要實現(xiàn) REGEXP 和 SIMILAR TO 的子串匹配行為,可在要嘗試匹配的模式的任何一側(cè)指定通配符。例如,REGEXP '.*car.*' 會與 car、carwash 和 vicar 匹配?;蛘?,可重寫查詢以使用 REGEXP_SUBSTR 函數(shù)。請參見REGEXP_SUBSTR 函數(shù) [String]。

      通過 SIMILAR TO 匹配的正則表達(dá)式不區(qū)分大小寫,也不區(qū)分重音。REGEXP 和 REGEXP_SUBSTR 不受數(shù)據(jù)庫區(qū)分重音和大小寫的影響。請參見LIKE、REGEXP 和 SIMILAR TO:字符比較上的差異。

      正則表達(dá)式:元字符

      元字符是在正則表達(dá)式中具有特殊含義的符號或字符。

      元字符的處理視以下情況而異:

      正則表達(dá)式是與 SIMILAR TO 或 REGEXP 搜索條件一起使用,還是與 REGEXP_SUBSTR 函數(shù)一起使用

      元字符是否在正則表達(dá)式的字符類的內(nèi)部

      在繼續(xù)之前,應(yīng)了解字符類的定義。字符類是一組括在方括號內(nèi)的字符,將根據(jù)這組字符對字符串中的字符進(jìn)行匹配。例如,在 SIMILAR TO 'ab[1-9]' 語法中,[1-9] 就是一個字符類,它與 1 到 9 范圍中(包括 1 和 9)的某一數(shù)字匹配。正則表達(dá)式中元字符的處理方式各不相同,這取決于元字符是否被放在字符類的內(nèi)部。具體來說,當(dāng)元字符放在字符類的內(nèi)部時,多數(shù)元字符作為常規(guī)字符來處理。

      對于 SIMILAR TO(僅限于 SIMILAR TO),元字符 *、?、+、_、|、(、)、{ 必須在字符類內(nèi)進(jìn)行轉(zhuǎn)義。

      要在字符類中包括減號 (-)、脫字符 (^) 或直角方括號 (]) 字符,必須將字符轉(zhuǎn)義。

      下面給出了所支持的正則表達(dá)式元字符的列表。當(dāng) SIMILAR TO、REGEXP 和 REGEXP_SUBSTR 使用元字符時,幾乎所有元字符的處理方式都相同:

      正則表達(dá)式:特殊子字符類

      子字符類 是嵌入到較大字符類中的特殊字符類。除了自定義字符類(在其中定義要匹配的字符集,例如,[abxq4]將匹配字符集限制為 a、b、x、q 和 4)以外,SQL Anywhere 還支持子字符類,例如,大部分 POSIX 字符類。例如,[[:alpha:]] 表示所有大寫和小寫字母的集合。

      REGEXP 搜索條件和 REGEXP_SUBSTR 函數(shù)支持下表中的所有語法約定,但 SIMILAR TO 搜索表達(dá)式不支持。SIMILAR TO 支持的約定在 SIMILAR TO 列中有一個 Y。

      在 REGEXP 中,當(dāng)使用 REGEXP_SUBSTR 函數(shù)時,可以使用脫字符對子字符類取非。例如,[[:^alpha:]] 匹配除字母字符以外的所有字符的集合。

      正則表達(dá)式:斷言

      斷言測試條件是否為真,并影響字符串中開始匹配的位置。斷言不返回字符;最終匹配中不包括斷言模式。REGEXP 搜索條件和 REGEXP_SUBSTR 函數(shù)支持這些斷言模式。而 SIMILAR TO 搜索表達(dá)式不支持這些約定。

      在嘗試拆分字符串時,lookahead 和 lookbehind 斷言對于 REGEXP_SUBSTR 將非常有用。例如,您可以通過執(zhí)行以下語句返回 Customers 表的 Address 列中街道名稱(不帶街道編號)的列表:

      SELECT REGEXP_SUBSTR( Street, '(?<=^\\S+\\s+).*$' )

      FROM Customers;

      另一個示例:假定您想要使用正則表達(dá)式來驗證口令是否符合某些規(guī)則。您可以使用類似于下面內(nèi)容的零寬度斷言:

      IF password REGEXP '(?=.*[[:digit:]])(?=.*[[:alpha:]].*[[:alpha:]])[[:word:]]{4,12}'

      MESSAGE 'Password conforms' TO CLIENT;

      ELSE

      MESSAGE 'Password does not conform' TO CLIENT;

      END IF

      當(dāng)滿足以下條件時,口令有效:

      password 至少有一位數(shù)(零寬度肯定斷言 [[:digit:]])

      password 至少有兩個字母字符(零寬度肯定斷言 [[:alpha:]].*[[:alpha:]])

      password 只含有字母數(shù)字字符或下劃線字符 ([[:word:]])

      password 最少含有 4 個字符,最多含有 12 個字符 ({4,12})

      下表包含 SQL Anywhere 支持的斷言:

      正則表達(dá)式示例

      下表顯示正則表達(dá)式的使用示例。所有示例都適用于 REGEXP,部分示例也適用于 SIMILAR TO(如[示例]列中注釋)。結(jié)果視您用于搜索的搜索條件而異。對于使用 SIMILAR TO 的示例,結(jié)果還要另外根據(jù)是否區(qū)分大小寫和重音而異。

      有關(guān) REGEXP 和 SIMILAR TO 如何處理匹配和計算范圍的比較,請參見LIKE、REGEXP 和 SIMILAR TO 搜索條件。

      請注意,如果在文字字符串中使用這些示例(例如,'.+@.+\\..+'),則應(yīng)使用雙反斜線

      到此這篇關(guān)于SQL Anywhere正則表達(dá)式語法與示例的文章就介紹到這了,更多相關(guān)SQL Anywhere正則表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

      來源:腳本之家

      鏈接:https://www.jb51.net/article/184178.htm

      申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

      相關(guān)標(biāo)簽
      正則表達(dá)式

      相關(guān)文章

      熱門排行

      信息推薦