正則表示式「^」符號的正確理解方式
以上面這個正則表示式為例,一般情況下我們會使用兩種思路去理解
-
不匹配「a」和「b」開頭的字串
-
匹配除「a」和「b」以外的所有字串開頭的字串
通過這兩種思路去理解這個正則表示式, 最終的答案都是一樣的,也是正確的。 我們思考問題的邏輯思路更傾向於第一種理解方式。
然而, 對於整套正則表示式體系理念來說, 第一種理解方式是錯誤的。 在正則表示式理念中, 只有去「匹配」些什麼, 從來沒有「不匹配」這一說法,這一點是必須要區分清楚的。
當我們處理正則問題時, 在梳理邏輯時將「匹配」與「不匹配」混雜在一起,勢必會增加處理問題的複雜度, 對於簡單的問題受到的影響也許不是很明顯 , 就像上面舉的例子那樣, 因為還在我們智力的承受範圍內,但碰到複雜的問題時, 就會像掉進沼澤一樣, 怎麼爬也爬不出來, 最終被困死在泥潭中。但是,假如只是以單純的「匹配」去理解,就能簡化處理問題的難度,降低複雜度,2肯定比1複雜。 因此,正則表示式最重要的核心理念就是「匹配」
另外,在程式設計中用到的替換、切割、查詢等操作, 都是程式類庫封裝的功能, 和正則表示式本身半毛錢關係也沒有。 理解「匹配」也就意味著對學習正則表示式的入門。
相關推薦
正則表示式「^」符號的正確理解方式
以上面這個正則表示式為例,一般情況下我們會使用兩種思路去理解 不匹配「a」和「b」開頭的字串 匹配除「a」和「b」以外的所有字串開頭的字串 通過這兩種思路去理解這個正則表示式, 最終的答案都是一樣的,也是正確的。 我們思考問題的邏輯思路更傾向於第一種理解方式。 然而, 對於整套正則表示式
正則表示式的特殊符號
特殊符號 代表意義 [:alnum:] 代表英文大小寫字元及數字,即0~9、A~Z、a~z [:alpha:] 代表任何英文大小寫字元,即A~Z、a~z [
[Xcode10 實際操作]九、實用進階-(5)使用正則表示式判斷格式是否正確
[Xcode10 實際操作]九、實用進階-(5)使用正則表示式判斷格式是否正確. 本文將演示使用正則表示式判斷郵箱的格式是否正確。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 1 import UIKit 2 3 //建立一個結構體,用於實現正
正則表示式中常用符號
一: 正則在Perl、Py森、Ruby、Java等語言中文字的正則表示式幾乎是一樣的 以前常用到的在網上都有現成的例子拿來用,比如電話格式、郵箱格式之類的。 但是自然語言處理中往往會根據自己的需求來制定一個表示式,如果正則的知識掌握的比較片面,在編寫自然語言
關於正則表示式的一些符號和sed、awk的速查筆記
之前轉載了一篇文章詳細講解正則表示式,傳送門:https://blog.csdn.net/CHEndorid/article/details/82932455,本文針對一些常用的進行梳理,並新增sed、awk簡單的操作,作為一個速查筆記 //裡的就是正則表示式 ^表示行
PHP正則表示式驗證郵箱是否正確
一 程式碼 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml
linux之正則表示式中特殊符號的含義
廢話不說,直接上圖 萬用字元與正則表示式 容易混淆,首先要明白二者是不同的,個人感覺萬用字元用於Linux的shell命令(如檔名相關操作)中,而正則表示式用於文字內容中的字串
37-正則表示式(概述+符號+對字串的常見操作(正則的四個功能))+Pattern+Matcher+練習題
一、正則表示式概述 1、正則表示式:用於操作字串資料,通過一些特定的符號體現 2、String類中 (1)public boolean matches(String regex):告知此字串是否匹配給定的正則表示式。呼叫此方法的str.matches(regex)形式與
js正則表示式()和$1...$9的理解和使用
1.小括號的意思 這是百度百科中的: (pattern) 匹配pattern並獲取這一匹配。所獲取的匹配可以從產生的Matches集合得到,在VBScript中使 用SubMatches
jquery 正則表示式判斷是否為正確郵箱格式
var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
JS正則表示式之特殊符號
在正則表示式中,許多標點符號具有特殊含義,比較難記,現歸納備個份: 這些符號有:^ $ . * + - ? = ! : | \ / ( ) [ ] { } 1.“[ ]”表示字元類: 即括號裡是個字符集:如/[abc]/,表示和含有a,b,c任何一個字母的字串都匹配。 注:特殊字元類:\s表示空格符、製表
深入理解正則表示式的環視
從Zjmainstay的深入理解正則表示式高階教程中擷取的一部分內容: 環視(斷言/零寬斷言) 環視,在不同的地方又稱之為零寬斷言,簡稱斷言。 用一句通俗的話解釋: 環視,就是先從全域性環顧一遍正則,(然後斷定結果,)再做進一步匹配處理。 斷言,就是先從全
爬蟲第一課:正則表示式符號與方法
第一課:正則表示式符號與方法 1. . :匹配任意字元,換行符除外: >>> import re >>> a='xy123' >>> b=re.findall('x',a) >>> b ['x'] >
常用正則表示式符號
正則表示式總結: \b : 單詞的開頭或結尾 . : 除了換行符以外的任意字元 * :前邊的內容可以連續重複使用任意次 \n : 換行符 \d :匹配一個數字 {n}
Java用正則表示式判斷輸入的電話號碼格式是否正確
import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; /** *三大運營商號碼均可驗證(不含衛星通訊1349) */ p
關於正則表示式的相關理解
在我們工作中經常會遇到正則表示式的相關問題,這篇文章來詳細來介紹正則表示式的相關用法,希望對你有所啟發; 附上鍊接: http://tool.oschina.net/uploads/apidocs/jquery/regexp.html http://www.runoob.com/rege
python中常用的正則表示式符號
'.' 預設匹配除\n之外的任意一個字元,若指定flag DOTALL,則匹配任意字元,包括換行 '^' 匹配字元開頭,若指定flags MULTILINE,這種也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE) '$' 匹配字元結尾,或e
Day004_Linux基礎命令之特殊符號與正則表示式萬用字元
特殊符號: . 點 cd . 表示當前目錄 ' '' 單引號,所見即所得 原封不動輸出 " ""雙引號,裡面的特殊符號會被解析執行 `` ====$( ) 先執行() 裡的命令,把結果留下 > 重定向符號 先清空檔案內容, 再追加檔案最後一行 &
深入理解正則表示式
一 前言 對於正則表示式,相信很多人都知道,但是很多人的第一感覺就是難學,因為看第一眼時,覺得完全沒有規律可尋,而且全是一堆各種各樣的特殊符號,完全不知所云。 其實只是對正則不瞭解而以,瞭解了你就會發現,原來就這樣啊正則所用的相關字元其實不多,也不難記,更不難懂,唯一難的就是組合起來之後,可
Python正則表示式做文字預處理,去掉特殊符號
在進行文字訓練和處理之前難免要進行下預處理,過濾掉沒有用的符號等,簡單用python 的正則表示式過濾一下。 #!/usr/bin/python # encoding: UTF-8 import re # make English text clean def clean_en_text(te