Skip to content

Latest commit

 

History

History
102 lines (77 loc) · 5.05 KB

正規表示式.md

File metadata and controls

102 lines (77 loc) · 5.05 KB

可參考此站練習

基本搜尋

pattern name notes
* 出現0到N次
+ 出現至少1次到N次
? 出現0或1次
|
. dot 符合任意字元,但不包含換行符
{n} The preceding item is matched exactly n times.
{min,} The preceding item is matched min or more times.
{,max} The preceding item is matched up to max times.
{min,max} The preceding item is matched at least min times, but not more than max times.
[] character set match any character in the set
() capturing group 在樣式中, 以圓括號圈住的部份就是一個子樣式 (Subexpressions), 也稱為一個群組 (Group)
(?!) negative lookahead Specifies a group that can not match after the main expression (if it matches, the result is discarded).
(?:) non-capturing group 在擷取結果內不會包含此 match

特殊字符

pattern name notes
\w word 任意字母,同[A-Za-z0-9_]
\d digit 任意數字,同[0-9]
\s whitespace 空白字元
\W non word 非任意英文字母,同[^A-Za-z0-9_]
\D non digit 非任意數字,同[^0-9]
\S non whitespace 非空白字元
\t tab 符合 tab 字元 (char 9)
\n line feed 符合換行字元 (char 10), LF
\r carriage return 符合回車字元 (char 10), CR

進階搜尋

  • 加在搜尋字串後面
Flag Description
g Global search.
i Case-insensitive search.
m Multi-line search.
y Perform a "sticky" search that matches starting at the current position in the target string.
  • 實用字串

找尋非<?php 與 <?= <\?\s*((!?php).)*[^\W=pe] 搜尋<?接符號 <\?($|[^\w=]|^(!?php)) 搜尋<?接一個字元 <\?([^p=]|^(!?php)) 搜尋$foo[ \$\w*\[[^"'\$0-9\]] 搜尋$foo["bla] \$\w*\[["|'][^\W"'\$]+\] 搜尋$foo["bla"] \$\w*\[["|'][^\W"'\$]+["|']\] 比對時間日期字串yyyy-mm-dd (?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))

  • 學習範例

比對結尾是0:搜尋框輸入0+$"或"0{1,}$

1.0
1.23000
12.20
120.54
0.200
34510.2210

比對結尾是.:搜尋框輸入[.]$

2.
456.
22.
120.

\s*\$\w*\s?==\s?1

  • 搜尋目標: $\w == 1
  • 舉例: $xxx == 1

\s+name\s*=\s*("|')?\w*("|')?

  • 搜尋目標: name\s*"\w*"
  • 舉例: name="xxx" 或 name='xxx' 或 name=xxx

jquery[\w-.]*\.js$

  • 搜尋目標:jquery[\w-.]*.js
  • 舉例:jquery-3.4.1.js

[^\s(,)]'[^\s(,)]

  • 搜尋目標(主要用來找沒有被跳脫的字元):文字'文字
  • 舉例:'HAS, MAS, OPA, Occasional survey for Changing Ship's Name'

[:/\.\w\?><=\$\s(\r\n)]*css/style.css

  • 搜尋目標(包在引用檔案內的路徑,所以不包含單雙引號):*css/style.css
  • 舉例:/pa/inc/css/style.css ../../css/style.css