在JavaScript字符串的search()方法中,如何匹配正則表達式?

2021-01-05 一都編程

第一節:基本概念

#JavaScript#正則表達式已經成為各大程式語言的標準,只是在不同的語言中,所使用的方式有所不同,但基本上核心的功能都是一樣的。

正則表達式的核心功能是建立一種匹配模式,這個匹配模式可以理解為模板,模子。

然後再拿具體的字符串來與這個模式進行匹配,如果匹配上,則表示符合要求,則進一步採用措施。

第二節:正則表達式特點

正則表達式是由字符串組成的。正則表達式只是一種搜索模式或匹配模式。對於具體的字符串,需要經過正則表達式的計算後,形成一個值來判斷是否匹配上。正則表達式可簡單,可複雜,需要根據語法定義模式。在各個程式語言中,也會推出一些與正則表達式相關的輔助操作,如替找操作等。第三節:正則表達式語法

在JavaScript中,對於正則表達式的定義,使用字面量表示法的基本語法如下:

/模式/修飾符

基本語法說明如下:

使用兩個/來表示一個正則表達式匹配模式。第一個/後面跟匹配模式。例如:var patt = /Yido/i,Yido是一個簡單的匹配模式,用於字符串的搜索。第二個/後面跟修飾符標誌。這裡的修飾符標誌是i,表示不分區大小寫進行匹配。

第四節:search()方法的使用

4.1. 基本含義

search()方法是字符串對象的方法,可與正則表達式對接,用於將當前字符串在正則表達式中搜索並匹配。

Search()方法返回的類型是一個整數值:

返回第一次匹配到的字符串的開始索引值,索引值是從0開始的。如果字符串沒有在正則表達式中匹配到,則返回-1。4.2. 參數是正則表達式

當我們使用JavaScript定義一個字符串後,在字符串對象上可以使用search()方法,並且可以將正則表達式做為參數傳入到該方法中。

Search()方法的使用正則表達式的代碼如下:

<script type="text/javascript">//正則表達式var patt = /Yido/i;//字符串var str1 = "Hello Yido Online Edu.";//返回查找的索引位置var index = str1.search(patt);document.write(index);</script>

在此代碼中,/Yido/i是一個簡單的正則表達式,表示在字符串中搜索是否存在Yido,i表示不區分大小寫,如果匹配到了,則返回相應的索引值,如果沒有匹配到,則返回-1。

在Visual Studio 2019中的完整代碼如下:

圖1

現在運行一下圖1的代碼,看是否能匹配上Yido,返回的整數是多少:

圖2

從運行的結果上看,返回的結果是6,表示匹配到了,字符串匹配上的起始位置是6。

再來看一個例子,JavaScript代碼如下:

<script type="text/javascript">var x = /[0-9]/i;var s1 = "Hello World 8";var index = s1.search(x);document.write(index);</script>

在此JS代碼中,正則表達式中使用了[0-9],表示0到9之間的整數。可匹配0-9之間的整數。

在字符串s1中,有一個整數值8,現在這段代碼的含義是在s1字符串中匹配0-9之間的整數,正好8在0-9之間,所以是可以匹配上的。運行結果如下:

圖3

在字符串的索引值為12的位置匹配成功了。

4.3. 參數是字符串

對於search方法,還可以使用字符串作為參數。實際上是將字符串參數轉換成了一個兼容的正則表達式。

JavaScript代碼如下:

<script type="text/javascript">//正則表達式var patt = "Yido";//字符串var str1 = "Hello Yido Online Edu.";//返回查找的索引位置var index = str1.search(patt);document.write(index);</script>

在此JS代碼中,將定義正則表達式的兩個/去掉了,變成了一個普通的字符串,但是運行出來的結果,還是6,表示匹配成功了,這說明還是將patt字符串轉換為了正則表達式來匹配。

相關焦點

  • Python正則表達式如何進行字符串替換
    Python正則表達式如何進行字符串替換 Python正則表達式需要進行字符串替換的時候需要用到一些字符串的匹配,在這一過程中遇到的問題一直在困擾著我們。
  • 在JavaScript中,使用replace()、test()和exec()方法匹配字符串
    replace()方法可以在字符串中使用一個或多個字符替換為另外一個或多個字符,也可以替換為一個與正則表達式能夠匹配上的子字符串。JavaScript正則表達式注意:使用replace()方法只能將字符串中第一個被匹配到的字符串替換掉。
  • JavaScript正則表達式元字符介紹
    正則表達式正則表達式是一個描述字符模式的對象,用於字符匹配創建正則表達式使用 new 運算符var reg = new RegExp('Box');// 要傳一個參數,該參數是模式字符串// 第二個參數可選,模式修飾符,i 忽略大小寫;g
  • JavaScript正則表達式常用技巧
    ^${}()|[\]\\]/g, &34;); //$&表示整個被匹配的字符串}使用正則表達式前面講到,正則表達式可以被用於 RegExp 的 exec 和 test 方法以及 String 的 match、replace、search 和 split 方法。
  • 正則表達式A - 方法及特殊字符用法
    .正則表達式的用法 正則表達式概念: 正則表達式是由普通字符及特殊字符組成的對字符串進行過濾的邏輯公式 正則表達式的創建方式: 1.字面量方式創建 (隱式創建): var reg = /正則表達式/gi;
  • Python學習第136課——把正則表達式匹配的字符串分組
    我們對上節的代碼稍作修改,把代表國家代碼的模式部分和代表11位手機號數字的模式部分用小括號括起來,這樣就相當於給通過正則表達式匹配模式找到的字符串進行了分組。代碼如下:運行結果:說明:search()函數用於找到字符串中第一個匹配的字符串,上面的代碼中message中86-16666666666、86-17777777777、86-18888888888都是匹配r'(\d\d)-(\d\d\d\d\d\d\d\d\d\d\d)'這個模式的字符串,但是我們看到match_object.group()列印出來只有
  • 正則表達式:如何匹配一個或多個字符?
    不過,絕大多數正則表達的式實現也支持不區分字母大小寫的匹配操作。比如說,JavaSeript用戶可以用1標誌來強制執行一次不區分字母大小寫的搜索。匹配任意字符前面見到的正則表達式都是靜態純文本,它們根本體現不出正則表達式的威力。下面我們一起來看看如何使用正則表達式去匹配不可預知的字符。在正則表達式裡,特殊字符(或字符集合)用來給出要搜索的東西。字符.
  • 使用JavaScript對正則表達式進行解析
    (1)用模式驗證字符串;(2)在字符串中搜索;(3)替換字符串中的子字符串;(4)從字符串中提取信息;2、使用正則表達式對於本文,我們將介紹如何在JavaScript中使用正則表達式,儘管此處學習的概念也適用於其他語言。話雖如此,在其他語言中,它們對待正則表達式的方式可能有所不同。讓我們看一個示例,該示例將驗證字符串是否包含單詞Hello。
  • Python中使用re模塊實現正則表達式的匹配字符串操作
    第八十二節:匹配字符串經過上一節比較枯燥的基礎內容,今天來看看如何利用正則表達式在Python中進行具體操作。在Python中使用正則表達式,首先要導入一個re模塊。匹配字符串的實際意義就是查找、查詢字符串。在Python中,使用正則表達式匹配字符串,多數情況下,匹配成功後立即返回Match對象,不成功就返回None值。None值就是假值,這個不用多述。Match對象是什麼呢?
  • JavaScript-正則表達式中的修飾符和對象有哪些?
    因為正則表達式的作用是對字符串進行操作,所以一般在實際開發中正則表達式會配合字符串的search和replace方法來使用。1.3.1 search方法search方法用於檢索與正則表達式相匹配的子字符串,並返回子字符串的起始位置。
  • python正則表達式使用方法說明
    二、使用正則表達式步驟1、尋找規律;2、使用正則符號表示規律;3、提取信息,如果每一個字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。三、正則表達式中常見的基本符號1.點號「.」一個點號可以代替除了換行符(\n)以外的任何一個字符,包括但不限於英文字母、數字、漢字、英文標點符號和中文標點符號。
  • JavaScript字符串 - 查找方法
    字符串查找的方法子字符串代表的就是要查找的字符串1.indexOf();格式:字符串.indexOf( 子字符串串,開始查找的位置 );返回值:如果在字符串中查找到了子字符串第一次出現的位置,返回子字符串出現的位置,否則沒有查找到返回 -
  • Python(3):正則表達式的編程實戰—re.match/re.search
    本文將通過通俗易懂的Python正則表達式實戰編程來為讀者演示如何使用正則表達式以及正則表達式處理的過程和結果,以供大家參考和學習。>解釋器在執行字符串形式的代碼前都必須把字符串編譯成代碼對象,原因就是預編譯的代碼對象比直接使用字符串代碼要快得多(感興趣的讀者可以去研究下Python代碼執行過程)。
  • python 正則表達式匹配結果如何輸出
    正則表達式把我們寫的匹配規則編譯後,會產生一個內置對象SRE_Pattern,我們可以通過這個內置對象獲得一些關於正則表達式的信息。SRE_Pattern對象屬性:flags 編譯時指定的模式groupindex 以正則表達式中有別名的組的別名為鍵、以該組對應的編號為值的字典,沒有別名的組不包含在內。groups 正則表達式中分組的數量pattern 編譯時用的正則表達式
  • Python正則表達式的七個使用範例
    在這個系列的第一篇文章中,我們將重點討論如何使用Python中的正則表達式並突出Python中一些獨有的特性。我們將介紹Python中對字符串進行搜索和查找的一些方法。然後我們講討論如何使用分組來處理我們查找到的匹配對象的子項。我們有興趣使用的Python中正則表達式的模塊通常叫做『re』。
  • Day233:正則表達式匹配方法 match()
    match()語法match本身是JavaScript語言中字符串對象的一個方法,該方法的籤名是  match([string] | [  我們必須明確的是,這個方法跟其他語言是不同的。JavaScript中的match()方法的返回值是數組或者是null。如果原字符串中匹配到了正則表達式指代的子串,則返回一個數組,否則返回null。
  • Python中的正則表達式及其常用匹配函數用法簡介
    Python正則表達式初識(九)10. Python正則表達式初識(十)附正則表達式總結11. Python正則表達式的簡單應用和示例演示這次給大家主要是介紹Python中的正則表達式,及其相關函數的基本使用方法,並且捎帶一些正則表達式給我們帶來的便利。
  • 為什麼要學正則表達式 - 6
    正則表達式就是記錄文本規則的代碼。上期咱們一起學習了正則表達式re模塊提供的match()方法學習了match()方法對字符串的操作和標識符的區別。最後通過一個案例明白了match()方法在python中的實際應用。
  • Python正則表達式由淺入深(三)
    經過前面三篇連載文章,相信大家對Python的re模塊使用正則表達式來匹配字符串已經有所了解。到目前為止,基本上有難度入門知識點都已經學完,我們繼續補充還沒講到的知識點,包括:行定位符與轉義字符,以及re模塊的re.sub()方法和re.split()方法。
  • Python:正則表達式基本符號總結
    字符串是我們在編程的時候很常用的一種數據類型,檢查會在字符串裡面查找一些內容,對於比較簡單的查找,字符串裡面就有一些內置的方法可以處理,對於比較複雜的字符串查找,或者是有一些內容經常變化的字符串裡面查找,那麼字符串內置的查找方法已經不好使了,滿足不了我們的要求,這個時候就得用正則表達式了,正則表達式就是用來匹配一些比較複雜的字符串。