Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
轉載自Stata連享會:
目錄
在日常生活中,我們經常需要使用 Word 的查找與替換功能來處理一些簡單數據。如果數據相對復雜,我們就需要借助 Word 的正則表達式。關于正則表達式,我們先來定義以下術語:
描述 | 類型 | 示例 |
任一字符 | ? | s?t 可找到 "sat" 和 "set" |
任何字符串 | * | s*d 可找到 "sad" 和 "started" |
單詞開頭 | < | <(inter) 可找到 "interesting" 和 "intercept",但找不到 "splintered" |
單詞結尾 | > | (in)> 可找到 "in" 和 "within",但找不到 "interesting" |
指定字符之一 | [ ] | w[io]n 可找到 "win" 和 "won" |
此范圍內的任一字符 | [-] | [r-t]ight 可找到 "right" 和 "sight",范圍必須是升序 |
除了括號內范圍中的字符之外的任一字符 | [!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" |
本節介紹了如何使用正則表達式轉置姓名、轉置日期。
第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。
Josh Barnhill
Doris Hartwig
Tamara Johnston
Daniel Shimshoni
第二步,在「開始」選項卡上的「編輯」組中,單擊「替換」以打開「查找和替換」對話框。
第三步,選中「使用通配符」復選框。若沒有看到「使用通配符」復選框,請單擊「更多」,然后選中該復選框。沒有選中該復選框時,Word 會將通配符視作文本。
第四步,在「查找內容」框中鍵入 (<*>) (<*>)。注:兩組括號之間包含了空格。
第五步,在「替換為」框中,鍵入 , 。注:在逗號和第二個斜杠之間包含了空格。然后單擊「全部替換」。Word 會轉置這些姓名并使用逗號分隔它們。
關于正則表達式,在第一個表達式 (<*>) (<*>) 中:
在第二個表達式 , 中:
第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。注意粘貼時只保留文本。
28th May 2003
1st Jun 2008
2nd Feb 2010
3rd Apr 2020
第二步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。
第三步,在「查找內容」框中鍵入 ([0-9]{1,2})([dhnrst]{2}) (<[ADFJMNOS]*>) ([0-9]{4})。
第四步,在「替換為」框中,鍵入 , 。注:確保在每個字符集之間插入空格。
第五步,單擊「全部替換」。
關于正則表達式,第一個表達式 ([0-9]{1,2})([dhnrst]{2}) (<[ADFJMNOS]*>) ([0-9]{4}) 的作用是將日期分解為四個部分,由多組括號來表示。具體來看:
在第二個表達式 , 中:
本節介紹了如何使用正則表達式將 "題號" 替換成 "題號、+換行" 和將選項 "B." 替換成 "換行符+B."。
第一步,啟動 Word,打開一個新的空白文檔。復制此文字,將它粘貼到該文檔中。
5、風險管理的主體是( )
A、法人 B、個人 C、任何組織和個人 D、組織
6、風險管理效益的大小,取決于( )
A、是否能以最小風險成本取得最大安全保障 B、是否能以最小風險成本取得最小安全保障 C、是否能以最大風險成本取得最小安全保障 D、是否能以最大風險成本取得最大安全保障
7、風險管理的方法分為( )
A、控制型和財務型 B、自留型和轉移型 C、控制型和轉移型 D、自留型和控制型
8、利用簽訂銷售、建筑、運輸合同處理風險的風險管理方法是( )
A、財務型保險轉移風險 B、財務型非保險轉移風險 C、避免型風險管理 D、控制型風險管理
第二步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。
第三步,在「查找內容」框中鍵入 (<[0-9]{1,2}>、)。
第四步,在「替換為」框中,鍵入 ^p。注:確保在每個字符集之間插入空格。
第五步,單擊「全部替換」。
關于正則表達式,在第一個表達式 (<[0-9]{1,2}>、) 中:
在第二個表達式 ^p 中:
第一步,按照上文描述打開「查找和替換」對話框,并選中「使用通配符」復選框。
第二步,在「查找內容」框中鍵入 (<[BCD]{1,1}>)。
第三步,在「替換為」框中,鍵入 ^p。注:確保在每個字符集之間插入空格。
第四步,單擊「全部替換」。
? 轉載自Stata連享會:
? 純屬練習Markdown,文章內容也經過精心挑選
? 為實現頁面中的跳轉,利用HTML語法的a標簽實現,可惜沒效果,知道原因的條友請告知
注意: 據Typora官方問檔顯示,可以用a標簽實現上述方法,不可以用HTML里的span標簽
幾天,我手里的一個項目需要將富文本的所有 html 標簽全部刪除,得到純文本后再存儲到數據庫中。在一系列得搜索操作之后,我找到了實現這個目的的幾種方法,在這里我分享給大家,當你遇到同樣的情況興許也能用的上。
這個方法是從文本中去除 html 標簽最簡單的方法。它使用字符串的方法 .replace(待替換的字符串,替換后的字符串) 將 HTML 標簽替換成空值。 /g 是表示替換字符串所有匹配的值,即字符串中所有符合條件的字符都將被替換。
這個方法的缺點是有些 HTML 標簽不能被剔除,不過它依然很好用。
這種方法是完成該問題的最有效的方法。創建一個臨時 DOM 并給他賦值,然后我們使用 DOM 對象方法提取文本。
html-to-text 這個包的功能很全了,轉換也有許多的選項比如:wordwrap, tags, whitespaceCharacters , formatters 等等。
安裝:
npm install html-to-text
使用:
最后感謝閱讀,如果此文對您有幫助,請點贊或添加關注。
xcel 中除了使用查找替換功能批量替換字符外,還可以使用文本替換類函數將字符串中的部分或全部內容替換成新的字符串。文本替換類函數包括SUBSTITUTE函數、REPLACE函數,以及用于區分雙字節字符的REPLACEB函數。
一、 字符替換函數SUBSTITUTE
SUBSTITUTE函數用于將字符串中指定的字符替換為新的文本字符串。函數語法如下SUBSTITUTE(text,old text,new_text,[instance_num])
第一參數text是必需參數,為需要替換其中字符的原始文本或單元格引用。
第二參數old_text是必需參數,為需要被替換的“舊文本”。如果第一參數的字符串中入包含該參數的字符串,則返回原始文本。
第三參數new_text是必需參數,為用于替換的“新文本”。如果該參數為空文本或省路參數的值僅保留參數之前的逗號時,相當于將需要替換的“舊文本”刪除。
第四參數instance_num是可選參數,表示替換第幾個“舊文本”。如果省略該參數,所有“舊文本”都會被替換。示例如下:
例:使用SUBSTITUTE函數計算平均分
上圖中,B列的數據記錄不規范,有的單元格中僅包含數字,有的單元格最后包含“分”字,需要在D2單元格中計算平均分。
在D2單元格中輸入以下數組公式,按<Ctrl+Shift+Enter>組合鍵。
{=ROUND(AVERAGE(--SUBSTITUTE(B2:B7,"分",)),2)}
公式中SUBSTITUTE函數的第三參數省略,表示將B2:B7單元格中的“分”字替換為空。不包含“分”字的單元格將不受影響,返回原有的內容。使用“--”(兩個負號)將SUBSTITUTE函數的結果由文本轉換為數值,再由AVERAGE函數進行求平均數,用ROUND函數保留二位小數。
提示:
本例僅作為SUBSTITUTE函數的一項使用方法說明,不代表所有不規范的數據都能夠通過函數的方法完成計算。實際輸入數據時可將不同類別的數據單獨一列存放,數值后面不加文本。如果使用類似“1箱54只”“3包22個”的數據輸入形式,將對后續的匯總帶來極大的麻煩。
例:使用SUBSTITUTE函數計算部門人數
下圖為某單位人員名單的部分內容,B列中每個單元格中有多個人員編號,中間用半角逗號作為分隔。需要在C列計算每個部門的人數。
在C2單元格中輸入以下公式,向下復制到C6單元格。
=LEN(B2)-LEN(SUBSTITUTE(B2,”,",))+1
公式第一部分LEN(B2)用于計算B2單元格中的字符數。
公式第二部分先用SUBSTITUTE函數將B2單元格中的逗號“,”替換為空文本,等于將所有逗號“,”從原始文本中刪除,再用LEN函數計算替換后的文本字符數。
最后用第一部分的原始字符數減去逗號“,”被刪數后的字符數,即得到原始字符串中一共有幾個逗號“,”。由于每個單元格中的人數總是比逗號數量多一個,因此,最后再在公式中加1,即得到每個部門的人數。
例:借助SUBSTITUTE函數提取產品批號中的工廠碼
下圖為某公司產品的批號,其格式為字母數字的組合,中間用“_”分隔不同的信息。其中第二個和第三個“_”之間的內容為產品的工廠碼,需要將其提取至B列。
在B2單元格中輸入以下公式,向下復制到B5單元格。
=TRIM(MID(SUBSTITUTE(A2,"-",REPT(” ",99)),99*2,99))
REPT函數將指定文本重復多次組成字符串,基本語法如下。
REPT(text,number_times)
第一參數text為需要重復的內容,可以是字符串或單元格引用
第二參數number_times為將第一參數重復的次數。
公式中REPT(“ "99)的作用是生成99個空格。
用SUBSTITUTE函數將A2單元格中的“_”替換為99個空格。這里用99個空格的目的是將原始字符中的各段文本用足夠多的空格分開構成新的字符串。新的字符串相當于如下。
DSF (99個空格) 25 (99個空格) D24 (99個空格) 50
因為要提取的字符在原始文本的第3段,所以用MID函數在以上字符串中第99*2個字符開始,提取99個字符,返回的結果相當于如下字符串。
(9個空格) D24 (87個空格)
最后再用TRIM函數清除文本兩端多余的空格,即得到需要的工廠碼。
二、用REPLACE函數替換字符串
REPLACE函數用于將部分文本字符串替換為新的字符串,與SUBSTITUTE函數的區別是,SUBSTITUTE函數是針對字符串中的指定字符內容進行替換,REPLACE函數是針對符串中的指定字符位置進行替換,其語法如下:
REPLACE(old_text,start_num,num_chars,new_text)
第一參數old_text表示要替換其部分字符的源文本。
第二參數start_num指定源文本中要替換為新字符的位置。
第三參數num_chars表示使用新字符串替換源字符串中的字符數,如果該參數為0或省略參數值,可以實現類似插入字符(串)的功能。
第四參數new_text表示用于替換源文本中字符的文本。
例:使用REPLACE函數隱藏手機號碼中間4位
在下圖中需要將B列手機號碼中間4位數字用星號“****”隱藏。
在C2單元格中輸入以下公式,向下復制到C10單元格。
=REPLACE(B2,4,4,”****”)
公式中使用REPLACE函數從B2單元格的第4個字符起,將4個字符替換為“****”
例:使用REPLACE函數將銀行卡號分段顯示
下圖為某單位客戶收款的銀行卡號,為便于讀取和核對,需要將銀行卡號數字分段顯示。
在B2單元格中輸入以下公式,向下復制到B10單元格.
=REPLACE(REPLACE(REPLACE(REPLACE(A2,5,0," "),10,0," "),15,0," "),20,0," ")
REPLACE函數第三參數為0表示插入字符。公式中使用了四次REPLACE函數,第一次先用REPLACE函數在A2單元格第5個字符前插入一個空格。生成的新字符串再作為第二個REPLACE函數的第一參數,在新字符串的第10個字符前再次插入一個空格。依此類推,形成每四個數字為一組的分段顯示方式。
三、用CLEAN函數和TRIM函數清理非打印字符和多余空格
部分從網頁、ERP系統或從其他軟件中導出的文本會存在一些非打印字符,影響正常數據查找及匯總計算。此外,由于數據錄入時的疏忽,可能會在英文單詞或中文姓名之間入多個空格。
CLEAN函數用于刪除文本中的部分非打印字符(ASCII碼的值為0~31)
使用TRIM函數能夠清除文本中除了單詞之間的單個空格外的所有空格。
它們的語法別為:
CLEAN(text)
TRIM(text)
四、使用NUMBERVALUE 函數轉換不規范數字
在整理表格數據的過程中,經常會有一些不規范的數字影響數據的匯總分析。例如,在數字中混有空格,或者夾雜有全角數字及文本型數字等。對于文本數據,可以使用TRIM函數清理多余空格,使用ASC函數將全角字符轉換為半角字符。對于數字內容,使用NUMBERVALUE函數可以兼容以上兩種功能。
NUMBERVALUE函數較VALUE函數在功能上有一定的提升。該函數不僅可以實現VALUE函數日期轉換為數值序列、文本型數字轉換為數值型數字、全角數字轉換為半角數字等功能,還可以處理混雜空格的數值及符號混亂等特殊情況。
對于“7430%”這樣的數據,NUMBERVALUE函數能夠將其轉換為74.3而使用VALUE函數,則返回錯誤值#VALUE!。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。