整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Word技巧:如何使用正則表達式高效替換

          Word技巧:如何使用正則表達式高效替換

          轉(zhuǎn)載自Stata連享會:


          目錄

          • 1. 引言
          • 2. 內(nèi)容轉(zhuǎn)置
            • 2.1轉(zhuǎn)置姓名
            • 2.2轉(zhuǎn)置日期
          • 3. 批量換行
            • 3.1 題號后加換行符
            • 3.2 選項前加換行符

          1. 引言

          在日常生活中,我們經(jīng)常需要使用 Word 的查找與替換功能來處理一些簡單數(shù)據(jù)。如果數(shù)據(jù)相對復雜,我們就需要借助 Word 的正則表達式。關(guān)于正則表達式,我們先來定義以下術(shù)語:

          • 通配符:指的是可以用來代表一個或多個字的字符。例如,星號 * 通常代表一個或多個字符,問號 ? 通常代表單個字符;
          • 正則表達式:指的是可以用來查找和替換文本模式的文本字符和通配符組合。文本字符指的是必須存在于目標文本字符串中的文本,通配符指的是目標字符串中可能各不相同的文本。

          描述

          類型

          示例

          任一字符

          ?

          s?t 可找到 "sat" 和 "set"

          任何字符串

          *

          s*d 可找到 "sad" 和 "started"

          單詞開頭

          <

          <(inter) 可找到 "interesting" 和 "intercept",但找不到 "splintered"

          單詞結(jié)尾

          >

          (in)> 可找到 "in" 和 "within",但找不到 "interesting"

          指定字符之一

          [ ]

          w[io]n 可找到 "win" 和 "won"

          此范圍內(nèi)的任一字符

          [-]

          [r-t]ight 可找到 "right" 和 "sight",范圍必須是升序

          除了括號內(nèi)范圍中的字符之外的任一字符

          [!x-z]

          t[!a-m]ck 可找到 "tock" 和 "tuck",但找不到 "tack" 或 "tick"

          前一個字符或表達式的 n 個匹配項

          {n}

          fe{2}d 可找到 "feed",但找不到 "fed"

          前一個字符或表達式的至少 n 個匹配項

          {n,}

          fe{1,}d 可找到 "fed" 和 "feed"

          前一個字符或表達式的 n 到 m 個匹配項

          {n,m}

          10{1,3} 可找到 "10"、"100" 和 "1000"

          前一個字符或表達式的一個或多個匹配項

          @

          lo@t 可找到 "lot" 和 "loot"


          2. 內(nèi)容轉(zhuǎn)置

          本節(jié)介紹了如何使用正則表達式轉(zhuǎn)置姓名、轉(zhuǎn)置日期。

          2.1 轉(zhuǎn)置姓名

          第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。

           Josh Barnhill
           Doris Hartwig
           Tamara Johnston
           Daniel Shimshoni

          第二步,在「開始」選項卡上的「編輯」組中,單擊「替換」以打開「查找和替換」對話框。

          第三步,選中「使用通配符」復選框。若沒有看到「使用通配符」復選框,請單擊「更多」,然后選中該復選框。沒有選中該復選框時,Word 會將通配符視作文本。

          第四步,在「查找內(nèi)容」框中鍵入 (<*>) (<*>)。注:兩組括號之間包含了空格。

          第五步,在「替換為」框中,鍵入 , 。注:在逗號和第二個斜杠之間包含了空格。然后單擊「全部替換」。Word 會轉(zhuǎn)置這些姓名并使用逗號分隔它們。

          關(guān)于正則表達式,在第一個表達式 (<*>) (<*>) 中:

          • 星號 * 代表任意字符串,會返回單詞中的全部文本;
          • 小于和大于符號 < > 分別標記了每個單詞的開始和結(jié)束。它們確保搜索會返回單個單詞;
          • 它們之間的括號和空格將單詞拆分成不同的組,即 (第一個單詞) 和 (第二個單詞)。

          在第二個表達式 , 中:

          • 斜杠 \ 與數(shù)字放在一起充當占位符;
          • 第一個占位符后的逗號,是在兩個被轉(zhuǎn)置的姓名之間插入想添加的標點符號;
          • 該表達式含義是,寫入第二個單詞,添加逗號,寫入第一個單詞。

          2.2 轉(zhuǎn)置日期

          第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。注意粘貼時只保留文本。

           28th May 2003
           1st Jun 2008
           2nd Feb 2010
           3rd Apr 2020

          第二步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。

          第三步,在「查找內(nèi)容」框中鍵入 ([0-9]{1,2})([dhnrst]{2}) (<[ADFJMNOS]*>) ([0-9]{4})。

          第四步,在「替換為」框中,鍵入 , 。注:確保在每個字符集之間插入空格。

          第五步,單擊「全部替換」。

          關(guān)于正則表達式,第一個表達式 ([0-9]{1,2})([dhnrst]{2}) (<[ADFJMNOS]*>) ([0-9]{4}) 的作用是將日期分解為四個部分,由多組括號來表示。具體來看:

          • 第一部分 ([0-9]{1,2})。數(shù)字范圍 [0-9] 匹配第一個模式中的一位數(shù)數(shù)字。因為日期可以由兩個數(shù)字組成,我們讓搜索返回一位數(shù)或兩位數(shù)的日期 {1,2};
          • 第二部分由序數(shù)詞組成。序數(shù)詞包含 "th"、"nd"、"st" 和 "rd",因此我們將這些字母添加到范圍 [dhnrst] 中。因為序數(shù)詞總是由兩個字母組成,我們將字母計數(shù)限制為 2,即 ([dhnrst]{2});
          • 第三部分是查找月份名的文本字符和通配符。所有月份名都以這些大寫字母開頭 "ADFJMNOS"。我們不知道每個大寫字母后有多少個字符,因此我們在它們之后使用星號 *。我們只對月份名本身感興趣,因此我們使用 <> 字符來將結(jié)果限制為單個單詞,即 (<[ADFJMNOS]*>);
            • 星號 * 代表任意字符串,會返回單詞中的全部文本;
            • 小于和大于符號 < > 分別標記了每個單詞的開始和結(jié)束,它們確保搜索會返回單個單詞;
          • 第四部分為年。我們使用相同的數(shù)字范圍,但這次我們將計數(shù)限制為四個字符 ([0-9]{4})。

          在第二個表達式 , 中:

          • 斜杠 \ 與數(shù)字放在一起充當占位符;
          • 第一個占位符后的逗號在兩個被轉(zhuǎn)置的姓名之間插入想添加的標點符號;
          • 該表達式的含義是,寫入第二個單詞,添加逗號,寫入第一個單詞。


          3. 批量換行

          本節(jié)介紹了如何使用正則表達式將 "題號" 替換成 "題號、+換行" 和將選項 "B." 替換成 "換行符+B."。

          3.1 題號后加換行符

          第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。

           5、風險管理的主體是( )
           A、法人 B、個人 C、任何組織和個人 D、組織
           6、風險管理效益的大小,取決于( )
           A、是否能以最小風險成本取得最大安全保障 B、是否能以最小風險成本取得最小安全保障 C、是否能以最大風險成本取得最小安全保障 D、是否能以最大風險成本取得最大安全保障
           7、風險管理的方法分為( )
           A、控制型和財務(wù)型 B、自留型和轉(zhuǎn)移型 C、控制型和轉(zhuǎn)移型 D、自留型和控制型
           8、利用簽訂銷售、建筑、運輸合同處理風險的風險管理方法是( )
           A、財務(wù)型保險轉(zhuǎn)移風險 B、財務(wù)型非保險轉(zhuǎn)移風險 C、避免型風險管理 D、控制型風險管理

          第二步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。

          第三步,在「查找內(nèi)容」框中鍵入 (<[0-9]{1,2}>、)。

          第四步,在「替換為」框中,鍵入 ^p。注:確保在每個字符集之間插入空格。

          第五步,單擊「全部替換」。

          關(guān)于正則表達式,在第一個表達式 (<[0-9]{1,2}>、) 中:

          • 小于和大于符號 < > 分別標記了每個單詞的開始和結(jié)束;
          • [0-9] 代表匹配從 0 到 9 的數(shù)字;
          • {1,2} 代表數(shù)字有 1 到 2 位。如果是 {1,7},就是數(shù)字有 1 到 7 位;
          • 頓號 、 則就代表字符串 "、"。

          在第二個表達式 ^p 中:

          • 代表第一個變量;
          • ^p 代表段落標記符號。

          3.2 選項前加換行符

          第一步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。

          第二步,在「查找內(nèi)容」框中鍵入 (<[BCD]{1,1}>)。

          第三步,在「替換為」框中,鍵入 ^p。注:確保在每個字符集之間插入空格。

          第四步,單擊「全部替換」。


          ? 轉(zhuǎn)載自Stata連享會:

          ? 純屬練習Markdown,文章內(nèi)容也經(jīng)過精心挑選

          ? 為實現(xiàn)頁面中的跳轉(zhuǎn),利用HTML語法的a標簽實現(xiàn),可惜沒效果,知道原因的條友請告知

          注意: 據(jù)Typora官方問檔顯示,可以用a標簽實現(xiàn)上述方法,不可以用HTML里的span標簽

          幾天,我手里的一個項目需要將富文本的所有 html 標簽全部刪除,得到純文本后再存儲到數(shù)據(jù)庫中。在一系列得搜索操作之后,我找到了實現(xiàn)這個目的的幾種方法,在這里我分享給大家,當你遇到同樣的情況興許也能用的上。

          1. 使用 .replace(/<[^>]*>/g, '')

          這個方法是從文本中去除 html 標簽最簡單的方法。它使用字符串的方法 .replace(待替換的字符串,替換后的字符串) 將 HTML 標簽替換成空值。 /g 是表示替換字符串所有匹配的值,即字符串中所有符合條件的字符都將被替換。

          這個方法的缺點是有些 HTML 標簽不能被剔除,不過它依然很好用。

          2. 創(chuàng)建臨時DOM元素并獲取其中的文本

          這種方法是完成該問題的最有效的方法。創(chuàng)建一個臨時 DOM 并給他賦值,然后我們使用 DOM 對象方法提取文本。

          3. 使用 html-to-text npm 包

          html-to-text 這個包的功能很全了,轉(zhuǎn)換也有許多的選項比如:wordwrap, tags, whitespaceCharacters , formatters 等等。

          安裝:

          npm install html-to-text

          使用:

          最后感謝閱讀,如果此文對您有幫助,請點贊或添加關(guān)注。

          xcel 中除了使用查找替換功能批量替換字符外,還可以使用文本替換類函數(shù)將字符串中的部分或全部內(nèi)容替換成新的字符串。文本替換類函數(shù)包括SUBSTITUTE函數(shù)、REPLACE函數(shù),以及用于區(qū)分雙字節(jié)字符的REPLACEB函數(shù)。

          一、 字符替換函數(shù)SUBSTITUTE

          SUBSTITUTE函數(shù)用于將字符串中指定的字符替換為新的文本字符串。函數(shù)語法如下SUBSTITUTE(text,old text,new_text,[instance_num])

          第一參數(shù)text是必需參數(shù),為需要替換其中字符的原始文本或單元格引用。

          第二參數(shù)old_text是必需參數(shù),為需要被替換的“舊文本”。如果第一參數(shù)的字符串中入包含該參數(shù)的字符串,則返回原始文本。

          第三參數(shù)new_text是必需參數(shù),為用于替換的“新文本”。如果該參數(shù)為空文本或省路參數(shù)的值僅保留參數(shù)之前的逗號時,相當于將需要替換的“舊文本”刪除。

          第四參數(shù)instance_num是可選參數(shù),表示替換第幾個“舊文本”。如果省略該參數(shù),所有“舊文本”都會被替換。示例如下:

          例:使用SUBSTITUTE函數(shù)計算平均分

          上圖中,B列的數(shù)據(jù)記錄不規(guī)范,有的單元格中僅包含數(shù)字,有的單元格最后包含“分”字,需要在D2單元格中計算平均分。

          在D2單元格中輸入以下數(shù)組公式,按<Ctrl+Shift+Enter>組合鍵。

          {=ROUND(AVERAGE(--SUBSTITUTE(B2:B7,"分",)),2)}

          公式中SUBSTITUTE函數(shù)的第三參數(shù)省略,表示將B2:B7單元格中的“分”字替換為空。不包含“分”字的單元格將不受影響,返回原有的內(nèi)容。使用“--”(兩個負號)將SUBSTITUTE函數(shù)的結(jié)果由文本轉(zhuǎn)換為數(shù)值,再由AVERAGE函數(shù)進行求平均數(shù),用ROUND函數(shù)保留二位小數(shù)。

          提示:

          本例僅作為SUBSTITUTE函數(shù)的一項使用方法說明,不代表所有不規(guī)范的數(shù)據(jù)都能夠通過函數(shù)的方法完成計算。實際輸入數(shù)據(jù)時可將不同類別的數(shù)據(jù)單獨一列存放,數(shù)值后面不加文本。如果使用類似“1箱54只”“3包22個”的數(shù)據(jù)輸入形式,將對后續(xù)的匯總帶來極大的麻煩。

          例:使用SUBSTITUTE函數(shù)計算部門人數(shù)

          下圖為某單位人員名單的部分內(nèi)容,B列中每個單元格中有多個人員編號,中間用半角逗號作為分隔。需要在C列計算每個部門的人數(shù)。

          在C2單元格中輸入以下公式,向下復制到C6單元格。

          =LEN(B2)-LEN(SUBSTITUTE(B2,”,",))+1

          公式第一部分LEN(B2)用于計算B2單元格中的字符數(shù)。

          公式第二部分先用SUBSTITUTE函數(shù)將B2單元格中的逗號“,”替換為空文本,等于將所有逗號“,”從原始文本中刪除,再用LEN函數(shù)計算替換后的文本字符數(shù)。

          最后用第一部分的原始字符數(shù)減去逗號“,”被刪數(shù)后的字符數(shù),即得到原始字符串中一共有幾個逗號“,”。由于每個單元格中的人數(shù)總是比逗號數(shù)量多一個,因此,最后再在公式中加1,即得到每個部門的人數(shù)。

          例:借助SUBSTITUTE函數(shù)提取產(chǎn)品批號中的工廠碼

          下圖為某公司產(chǎn)品的批號,其格式為字母數(shù)字的組合,中間用“_”分隔不同的信息。其中第二個和第三個“_”之間的內(nèi)容為產(chǎn)品的工廠碼,需要將其提取至B列。

          在B2單元格中輸入以下公式,向下復制到B5單元格。

          =TRIM(MID(SUBSTITUTE(A2,"-",REPT(” ",99)),99*2,99))

          REPT函數(shù)將指定文本重復多次組成字符串,基本語法如下。

          REPT(text,number_times)

          第一參數(shù)text為需要重復的內(nèi)容,可以是字符串或單元格引用

          第二參數(shù)number_times為將第一參數(shù)重復的次數(shù)。

          公式中REPT(“ "99)的作用是生成99個空格。

          用SUBSTITUTE函數(shù)將A2單元格中的“_”替換為99個空格。這里用99個空格的目的是將原始字符中的各段文本用足夠多的空格分開構(gòu)成新的字符串。新的字符串相當于如下。

          DSF (99個空格) 25 (99個空格) D24 (99個空格) 50

          因為要提取的字符在原始文本的第3段,所以用MID函數(shù)在以上字符串中第99*2個字符開始,提取99個字符,返回的結(jié)果相當于如下字符串。

          (9個空格) D24 (87個空格)

          最后再用TRIM函數(shù)清除文本兩端多余的空格,即得到需要的工廠碼。

          二、用REPLACE函數(shù)替換字符串

          REPLACE函數(shù)用于將部分文本字符串替換為新的字符串,與SUBSTITUTE函數(shù)的區(qū)別是,SUBSTITUTE函數(shù)是針對字符串中的指定字符內(nèi)容進行替換,REPLACE函數(shù)是針對符串中的指定字符位置進行替換,其語法如下:

          REPLACE(old_text,start_num,num_chars,new_text)

          第一參數(shù)old_text表示要替換其部分字符的源文本。

          第二參數(shù)start_num指定源文本中要替換為新字符的位置。

          第三參數(shù)num_chars表示使用新字符串替換源字符串中的字符數(shù),如果該參數(shù)為0或省略參數(shù)值,可以實現(xiàn)類似插入字符(串)的功能。

          第四參數(shù)new_text表示用于替換源文本中字符的文本。

          例:使用REPLACE函數(shù)隱藏手機號碼中間4位

          在下圖中需要將B列手機號碼中間4位數(shù)字用星號“****”隱藏。

          在C2單元格中輸入以下公式,向下復制到C10單元格。

          =REPLACE(B2,4,4,”****”)

          公式中使用REPLACE函數(shù)從B2單元格的第4個字符起,將4個字符替換為“****”

          例:使用REPLACE函數(shù)將銀行卡號分段顯示

          下圖為某單位客戶收款的銀行卡號,為便于讀取和核對,需要將銀行卡號數(shù)字分段顯示。

          在B2單元格中輸入以下公式,向下復制到B10單元格.

          =REPLACE(REPLACE(REPLACE(REPLACE(A2,5,0," "),10,0," "),15,0," "),20,0," ")

          REPLACE函數(shù)第三參數(shù)為0表示插入字符。公式中使用了四次REPLACE函數(shù),第一次先用REPLACE函數(shù)在A2單元格第5個字符前插入一個空格。生成的新字符串再作為第二個REPLACE函數(shù)的第一參數(shù),在新字符串的第10個字符前再次插入一個空格。依此類推,形成每四個數(shù)字為一組的分段顯示方式。

          三、用CLEAN函數(shù)和TRIM函數(shù)清理非打印字符和多余空格

          部分從網(wǎng)頁、ERP系統(tǒng)或從其他軟件中導出的文本會存在一些非打印字符,影響正常數(shù)據(jù)查找及匯總計算。此外,由于數(shù)據(jù)錄入時的疏忽,可能會在英文單詞或中文姓名之間入多個空格。

          CLEAN函數(shù)用于刪除文本中的部分非打印字符(ASCII碼的值為0~31)

          使用TRIM函數(shù)能夠清除文本中除了單詞之間的單個空格外的所有空格。

          它們的語法別為:

          CLEAN(text)

          TRIM(text)

          四、使用NUMBERVALUE 函數(shù)轉(zhuǎn)換不規(guī)范數(shù)字

          在整理表格數(shù)據(jù)的過程中,經(jīng)常會有一些不規(guī)范的數(shù)字影響數(shù)據(jù)的匯總分析。例如,在數(shù)字中混有空格,或者夾雜有全角數(shù)字及文本型數(shù)字等。對于文本數(shù)據(jù),可以使用TRIM函數(shù)清理多余空格,使用ASC函數(shù)將全角字符轉(zhuǎn)換為半角字符。對于數(shù)字內(nèi)容,使用NUMBERVALUE函數(shù)可以兼容以上兩種功能。

          NUMBERVALUE函數(shù)較VALUE函數(shù)在功能上有一定的提升。該函數(shù)不僅可以實現(xiàn)VALUE函數(shù)日期轉(zhuǎn)換為數(shù)值序列、文本型數(shù)字轉(zhuǎn)換為數(shù)值型數(shù)字、全角數(shù)字轉(zhuǎn)換為半角數(shù)字等功能,還可以處理混雜空格的數(shù)值及符號混亂等特殊情況。

          對于“7430%”這樣的數(shù)據(jù),NUMBERVALUE函數(shù)能夠?qū)⑵滢D(zhuǎn)換為74.3而使用VALUE函數(shù),則返回錯誤值#VALUE!。


          主站蜘蛛池模板: 精品成人一区二区三区四区| 亚洲一区二区三区免费视频| 国产在线精品观看一区| 国产肥熟女视频一区二区三区| 国产激情精品一区二区三区| 精品国产福利一区二区| 国产熟女一区二区三区五月婷| 亚洲国产韩国一区二区| 日本高清不卡一区| 久久精品综合一区二区三区| 在线免费视频一区| 一区二区和激情视频| 亚洲福利一区二区精品秒拍| 久久精品午夜一区二区福利 | 一区二区三区高清在线| 国产乱码精品一区二区三区麻豆 | 无码日韩精品一区二区人妻| 大香伊蕉日本一区二区| 无码av中文一区二区三区桃花岛| 韩国理伦片一区二区三区在线播放| 91久久精品国产免费一区| 精品一区二区三区在线成人| 91福利国产在线观一区二区| 麻豆亚洲av熟女国产一区二 | 国产精品日韩一区二区三区| 变态调教一区二区三区| 日韩A无码AV一区二区三区| 国产剧情一区二区| 一本色道久久综合一区| 无码日韩精品一区二区人妻 | 欲色aV无码一区二区人妻| 国产精品视频分类一区| 亚洲日韩中文字幕无码一区| 国产成人一区二区三区| 精品视频午夜一区二区| 内射女校花一区二区三区| 97久久精品一区二区三区| 亚洲无码一区二区三区| 无码国产亚洲日韩国精品视频一区二区三区| 日韩精品一区二区三区中文版| 亚洲国产一区二区视频网站|