初試正規表示式

2021-08-21 02:41:55 字數 1349 閱讀 4185

分枝條件

分組反義

個人反思 **

說明.匹配除換行符以外的任意字元

\w匹配字母數字下劃線漢字

\s匹配任意空白符

\d匹配任意數字

\b匹配單詞的開始或結束

^匹配字串的開始

$匹配字串的結束

?出現零次(不出現)或一次

+出現一次或者更多次

**說明.\.

*\*\\\

輸入輸出(說明)

(010)88886666,或022-22334455,或02912345678

(?0\d[) -]?\d

字元長度位5-12個隨機數字

^\d$

不幸的是,剛才那個表示式也能匹配010)12345678或(022-87654321這樣的「不正確」的格式。要解決這個問題,我們需要用到分枝條件。正規表示式裡的分枝條件指的是有幾種規則,如果滿足其中任意一種規則都應該當成匹配,具體方法是用|把不同的規則分隔開。聽不明白?沒關係,看例子:

0\d-\d|0\d-\d這個表示式能匹配兩種以連字型大小分隔的**號碼:一種是三位區號,8位本地號(如010-12345678),一種是4位區號,7位本地號(0376-2233445)。

\(0\d\)[- ]?\d|0\d[-]?\d這個表示式匹配3位區號的**號碼,其中區號可以用小括號括起來,也可以不用,區號與本地號間可以用連字型大小或空格間隔,也可以沒有間隔。你可以試試用分枝條件把這個表示式擴充套件成也支援4位區號的。

怎麼重複單個字元(直接在字元後面加上限定符就行了);但如果想要重複多個字元又該怎麼辦?你可以用小括號來指定子表示式(也叫做分組),然後你就可以指定這個子表示式的重複次數了,你也可以對子表示式進行其它一些操作(後面會有介紹)。

(\d.)\d是乙個簡單的ip位址匹配表示式。要理解這個表示式,請按下列順序分析它:\d匹配1到3位的數字,(\d.)匹配三位數字加上乙個英文句號(這個整體也就是這個分組)重複3次,最後再加上乙個一到三位的數字(\d)。

**說明

\d匹配除數字外的字元

\w匹配除漢字字母數字下劃線外的字元

\s匹配任意不是空白的字串

\b匹配不是開頭或結尾的位置

\[^x]

匹配除了x以外的任意字元

[^aeiou]

匹配除了aeiou這幾個字母以外的任意字元

資料庫中 like 模糊查詢和正規表示式的異同;

mysql資料庫中 使用 regexp 關鍵字通過正規表示式進行模糊查詢,sqlserver是否試用;

[更新日期:20180628]

剩餘參考文章:

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...