mysql 6正規表示式

2022-09-16 12:00:15 字數 1836 閱讀 9581

匹配的兩種方式:

語法說明

^起始位置。如果設定了regexp物件的multiline屬性,^也匹配'\n'或'\r'之後的位置。

$結束位置。如果設定了regexp物件的multiline屬性,$也匹配'\n'或'\r'之前的位置。

.匹配處\n之外的任何單個字元。要匹配'\n'在內的任何字元,請使用'[.\n]'模式

[...]

字元集合。匹配所包含的任意乙個字元。例如'[abc]'可以匹配'plain'中的a

[^...]

負值字元集合。匹配未包含的任意字元。例如,'[^abc]'可以匹配'plain'中的'p' .這個不理解

p1|p2|p3

匹配p1或p2或p3。例如'z|food'能匹配"z"或"food"。'(z|f)ood'則匹配"zood"或"food"。

*匹配前面的子表示式0次或多次。'zo'能匹配"z"以及"zoo".等價於

+匹配前面的子表示式1次或多次。'zo+'能匹配"zo"以及"zoo",但不能匹配"z".+等價於

n是乙個非負整數。匹配確定的n次。例如'o'不能匹配"bob"中的"o",但能匹配"food"中的"oo"

m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次

select * from csj_tbl where csj_author regexp "^菜鳥";

select * from csj_tbl where csj_author regexp "教程$";

select * from csj_tbl where csj_author regexp "^菜鳥教程$";

select * from csj_tbl where csj_author regexp "菜鳥教程.";

select * from csj_tbl where csj_title regexp "學習.j**a";

select * from csj_tbl where csj_title regexp "學習.j**a......";

select * from csj_tbl where csj_title regexp "[abc]";

select * from csj_tbl where csj_title regexp 'j**a|python';

-- 增加2條記錄

insert into csj_tbl values

(6,"zood","zoozoo",2018-11-12),

(7,"food","zoozoozoozoo",2018-11-12);

select * from csj_tbl where csj_title regexp "(z|f)ood";

select * from csj_tbl where csj_title regexp "oo*";

select * from csj_tbl where csj_title regexp "o+";

select * from csj_tbl where csj_author regexp "(zoo)";

select * from csj_tbl where csj_author regexp "(zoo)";

select * from csj_tbl where csj_author regexp '[^a-z0-9]';

-- 查詢name欄位中以母音字元開頭或以'ok'字串結尾的所有資料:

mysql正規表示式 MySQL正規表示式

正規表示式是為複雜搜尋指定模式的強大方式。正規表示式描述了一組字串。最簡單的正規表示式是不含任何特殊字元的正規表示式。例如,正規表示式hello匹配hello。非平凡的正規表示式採用了特殊的特定結構,從而使得它們能夠與1個以上的字串匹配。例如,正規表示式hello word匹配字串hello或字串w...

正規表示式 6

普通字元包括沒有顯式指定為元字元的所有可列印和不可列印字元。這包括所有大寫和小寫字母 所有數字 所有標點符號和一些其他符號。正規表示式的最簡單形式是在搜尋字串中匹配其本身的單個普通字元。例如,單字元模式,如 a,不論出現在搜尋字串中的何處,它總是匹配字母 a。下面是一些單字元正規表示式模式的示例 a...

正規表示式 6 正規表示式前奏 地獄

先來看幾個例子,如果用一般的方法 非正規表示式方法 解決如下幾個問題,難度會非常大。需求1 192.168.10.5 port 8080 這個字串表示ip位址為192.168.10.5的伺服器的8080埠是開啟的,請用程式解析此字串,然後列印出 ip位址為 的伺服器的 埠是開啟的 需求2 192.1...