轉(zhuǎn)載自Stata連享會:
目錄
在日常生活中,我們經(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" |
本節(jié)介紹了如何使用正則表達式轉(zhuǎn)置姓名、轉(zhuǎn)置日期。
第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。
Josh Barnhill
Doris Hartwig
Tamara Johnston
Daniel Shimshoni
第二步,在「開始」選項卡上的「編輯」組中,單擊「替換」以打開「查找和替換」對話框。
第三步,選中「使用通配符」復選框。若沒有看到「使用通配符」復選框,請單擊「更多」,然后選中該復選框。沒有選中該復選框時,Word 會將通配符視作文本。
第四步,在「查找內(nèi)容」框中鍵入 (<*>) (<*>)。注:兩組括號之間包含了空格。
第五步,在「替換為」框中,鍵入 , 。注:在逗號和第二個斜杠之間包含了空格。然后單擊「全部替換」。Word 會轉(zhuǎn)置這些姓名并使用逗號分隔它們。
關(guā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}) 的作用是將日期分解為四個部分,由多組括號來表示。具體來看:
在第二個表達式 , 中:
本節(jié)介紹了如何使用正則表達式將 "題號" 替換成 "題號、+換行" 和將選項 "B." 替換成 "換行符+B."。
第一步,啟動 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}>、) 中:
在第二個表達式 ^p 中:
第一步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。
第二步,在「查找內(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)這個目的的幾種方法,在這里我分享給大家,當你遇到同樣的情況興許也能用的上。
這個方法是從文本中去除 html 標簽最簡單的方法。它使用字符串的方法 .replace(待替換的字符串,替換后的字符串) 將 HTML 標簽替換成空值。 /g 是表示替換字符串所有匹配的值,即字符串中所有符合條件的字符都將被替換。
這個方法的缺點是有些 HTML 標簽不能被剔除,不過它依然很好用。
這種方法是完成該問題的最有效的方法。創(chuàng)建一個臨時 DOM 并給他賦值,然后我們使用 DOM 對象方法提取文本。
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!。
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。