正則匹配以除了開頭和結尾要有個大寫_27.Google analytics 中的 正則表示式
技術標籤:正則匹配以除了開頭和結尾要有個大寫
餐卡如下文章:
GA正則表示式regex終極攻略 - Damon Analyticsdamonanalytics.com https://support.google.com/analytics/answer/1034324?hl=en&ref_topic=1034375support.google.comGA中總共有13中正則表示式符號,包含了大多數常見的正則表示式。
其中有一些你基本上用不到,但是有部分你可能需要日常使用。
豎線(|)
豎線是最簡單的,它代表或(or)
一個例子:
在這個案例中,我試著匹配兩個頁面,/ebooks/ 和 /tools/ 。
實際上這裡只要url中包含字串 /ebooks/ 或 /tools/ 都會被篩選出來,例如 /ebooks/Harry-Potter-and-the-Order-of-the-Phoenix 和/tools/hammer 。下面會有如何用正則更準確的匹配url。
點(.)
點匹配任意字元,它更像是一個萬用字元。
一個例子:
.ide 可以匹配 wide、guide,但是它不能匹配 ide。
星號(*)
它表示前一個字串的0個或多個。
一個例子:
damo*n 可以匹配damn、damon、damoon、damooon
點星號(.*)
這是一個強大的組合,因為它代表了任意字串組合。
.* matches everything!
例如如果你要匹配所有漫畫書目錄下的頁面:
try:/comic-books/.*
注意:這個表示式的解析時間很長,因此不要濫用它。
反斜槓()
前面介紹了這麼多符號,如果你要匹配這些符號呢,例如你要匹配”235.25.128.2″這個IP怎麼辦呢?
點(.)是匹配任意字元的,怎麼去匹配“.”呢?
235.25.128 即可,相當於反斜槓()是告訴機器,你要把我後面的字元當做普通字元處理。
上標(^)
它表示一段字串的開頭。
^book 匹配 books,bookworm,bookcase……
美元符號($)
它表示一段字串的結尾。
book$ 匹配 buybook,sellbook,storybook……
問號(?)
星號(*)代表前一個字元的0個或多個,那麼問號(?)代表的是前一個字元的0個或1個。
mar?ks 匹配mars和marks
括號(())
假設你有三個目錄列表:
- /products/men/shirts/
- /products/women/shirts/
- /products/children/shirts/
你可以粗暴的應用 .*
^/products/.*/shirts/$
它表示以/products/開頭,/shirts/結尾的所有字串(好好溫習一下之前的知識)
但是這樣更加精確:
/products/(men|women|children)/shirts/
方括號([])
方括號([])幫助更快的構建列表
r[aei]d 匹配rad、red、rid
短橫線(-)
它幫助建立更高階的列表,如純數字,字母列表,通常與方括號([])搭配使用:
[0-9]
- [a-z] 匹配所有單個小寫字母
- [A-Z] 匹配所有單個大寫字母
- [0-9] 匹配所有個位數字,0到9
- [a-zA-Z0-9] 匹配任何單個數字或字母
例如你有這樣幾款產品,它們的SKU分別是:
- 11002
- 11003
- 11004
- 11005
1100[2-5]可以匹配以上4款產品
加號(+)
加號(+)表示前一個字元的一個或多個。
bo+k 匹配bok,book,boook
花括號({})
the last one,you made it!
{1,2} 表示前一個“item”至少一次,並且不超過兩次
{2}表示前一個“item”重複兩次
12[0-9]{3} 匹配12000到12999的自然數。
問題:正則表示式中的^什麼時候表示非,什麼時候表示表示式的首部匹配?
回到:在開頭表示開始,在[]之間表示非
問題:正則表示式-- (.*?) 或 (.*+)
後邊多一個?表示懶惰模式。
必須跟在*或者+後邊用
如:<img src="test.jpg" width="60px" height="80px"/>
如果用正則匹配src中內容非懶惰模式匹配
src=".*"
匹配結果是:src="test.jpg" width="60px" height="80px"
意思是從="往後匹配,直到最後一個"匹配結束
懶惰模式正則:
src=".*?"
結果:src="test.jpg"
因為匹配到第一個"就結束了一次匹配。不會繼續向後匹配。因為他懶惰嘛。
.表示除n之外的任意字元
*表示匹配0-無窮
————————————————
版權宣告:本文為CSDN博主「Scarlett·S」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_37503890/java/article/details/94610002
問題:(^|&)?(w+)=([^&]+)(&|$)? 正則表示式 幫忙解釋一下什麼意思?
(^|&)? 匹配^或者& 放到分組中,其中分組出現次數最少零次,最多一次
(w+)匹配一個字元,最少一個,最任意個並放到分組中
=單純的匹配一個等號
([^&]+) 不包含&(^在這裡開頭代表不包含的意思) 匹配最少一個次,最多人一次並放到分組中
(&|$)? 匹配&或者¥ 放到分組中,其中分組出現次數最少零次,最多一次
總的來說就是匹配一個 開頭出現^、& 結尾出現&、$的字串 其中開頭和結尾這些字串可不出現,等號左側字元可以出現一次或者更多次,右側的字元除&以外可以出現一次或者更多次
大概就是這個意思!
捕獲組:
/men/(.*?)/代表:
/men/shirts/
/men/pants/
/men/shoes/
/products?.*category=([^&]+)代表:
/products?sort=price&category=memory
/products?sort=discount&category=printers
/products?sort=date&category=laptops
D+(BS)d+ 解釋:
D (non-numeric character)
+ (one or more times)
(BS) (character code for beach sandal)
d (numeric character)
+ (one or more times)
(MN|WM)BSd+解釋:
(MN OR WM)
BS (character code for beach sandals)
d (numeric character)
+ (one or more times)