正規表示式

2021-09-30 07:17:55 字數 810 閱讀 1787

利用正規表示式去除字串前後空格

code

1 string.prototype.trim=function();

5 讓我們分析一下第二行的正規表示式

^ 行開始

/s*

匹配字元前面的所有空格,貪婪模式重複

(.*?)

捕獲組,勉強模式重複匹配任意字元,也就是我們最終需要(去掉前後空格後)的字元,這個不是很好理解(我認為)

第一:我原來認為在捕獲組內也應該判斷第乙個字元應該不能為空格即寫成([^/s+])的形式,但這是完全沒有必要的因為捕獲組前面的 /s*已經能捕獲

開頭的所有的空格字元了,你認為的捕獲組的字元開始範圍與正規表示式匹配的字元範圍是不一樣的,汗~有點說不清楚了,呵呵

第二:其中?的作用,他的作用就是勉強模式重複前面的字元,什麼意思呢?就是如果我用(.*a)去匹配aaaaaaa字串的結果就是 (aaaaaaa)源字串這叫貪婪模式,

如果用(.*?a)去匹配aaaaaaa的話他就會先匹配第一a,然後是第二個a,然後是第三個 a.......這就叫勉強模式匹配有的地方也叫懶惰模式匹配。通俗一點
(大家都喜歡通俗的解釋,呵呵)就是前者是從後往前去匹配盡可能多的字元,而後者是從前往後匹配

第三:我們還要不要去關心捕獲組中後面的空格呢?因為捕獲組中的"."也是可以匹配空格的,先前我也是考慮這個問題大部分時間都浪費在這上面了.

其實這和考慮要不要排除捕獲組前面的空格一樣的道理,後面的/s*已經給我們處理了

/s*匹配字元後面的空格

如有不對地方,歡迎指出來,交流才能進步

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

非負整數 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正規表示式 編寫正規表示式

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