最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

正則表達式之prxchange—短句中唯首單詞首字母大寫

2022-02-05 10:19 作者:CDISC與SAS  | 我要投稿

ADAM數(shù)據(jù)集AVISIT的value都是大寫,比如“WEEK 1 DAY 1 HOUR 1”,但是某次項目shell要求呈現(xiàn)“Week 1 day 1 hour 1”,即首個單詞的首字母大寫,其余小寫。

方法較多,比如tranwrd


,又比如用scan把第一個單詞拆開單獨處理,再和剩下的單詞組合。

今天來介紹下正則表達式中prxchange的部分用法。

????基本格式:

?????????????s/regular-expression/replacement-string/

? ? ? ? ? ? ? ? s/…/…/

  • s 表示:指定一個替換正則表達式,開頭必備。

  • /…/…/:三條/必備。


第一種是簡單版,借用了SAS lowcase函數(shù),只考慮第一個字母。


(\w) 表示:匹配一個字符(字母、數(shù)字、下劃線)。圓括號 ( )? 表明value存儲在capture buffer 1?!静东@緩沖區(qū)1】

\u 表示:指定下一個字符為大寫。

\U 表示:指定下一個字符串為大寫,直到遇到\E元字符,否則即全部大寫。本例\U也可,因為都僅有一個字符 “W” 。

$1 表示:將capture buffer 1中的數(shù)據(jù)放到結(jié)果中,例子中把“W”放進結(jié)果中。

\B表示:

[a-z] 表示:匹配一個小寫字母。

1表示:指定匹配的次數(shù)。表示匹配一次后結(jié)束搜索。


額外補充:每個單詞首字母大寫。


\L 表示:指定下一個字符串為小寫,直到遇到\E元字符,否則即全部小寫。

此處把“WEEK”、“1”、“DAY”、“1”、“HOUR”、“1”都放進結(jié)果里,然后首位字符\u先大寫,剩余字符均\L小寫。


第二種嚴謹版,適用于格式嚴格統(tǒng)一的value,準確匹配value的格式內(nèi)容。比如下面兩列“WEEK 1 DAY 1 HOUR 1”和“DAY 1 HOUR 1”,不可共用一段代碼。


^表示:開頭匹配。

$表示:結(jié)尾匹配。



第三種就是模糊匹配版,適用于類似的卻不統(tǒng)一的value的格式。比如下面兩列“WEEK 1 DAY 1 HOUR 1”和“DAY 1 HOUR 1”,可共用一段代碼。


結(jié)尾:

???????? 之所以想到用正則解決,是因為tranwrd方法會因為內(nèi)容改變而需要修改程序,scan拆分再組合方法在我司工具里需要新建數(shù)據(jù)集單獨處理,實在有點麻煩并且low。而正則可以在原來基礎(chǔ)上進行修改。

???????? 即使正則在實際工作中所用甚少,但是多學(xué)一種方法可以打開眼界,擴展思路。

???????? 如有問題,歡迎私信,一起討論交流!微信號:Terhing



正則表達式之prxchange—短句中唯首單詞首字母大寫的評論 (共 條)

分享到微博請遵守國家法律
沽源县| 永吉县| 巨野县| 搜索| 额尔古纳市| 历史| 通州区| 榆树市| 开化县| 平顺县| 孙吴县| 且末县| 大渡口区| 禹州市| 白山市| 克什克腾旗| 定远县| 石泉县| 通州市| 香格里拉县| 桑日县| 铁岭市| 印江| 罗源县| 甘泉县| 杭州市| 南部县| 富顺县| 屏边| 崇明县| 綦江县| 温泉县| 凌海市| 藁城市| 江永县| 巩留县| 内丘县| 临澧县| 泸溪县| 沙坪坝区| 谷城县|