国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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—短句中唯首單詞首字母大寫的評論 (共 條)

分享到微博請遵守國家法律
炎陵县| 清水县| 小金县| 高安市| 富源县| 宁远县| 视频| 两当县| 桦川县| 河东区| 兴安盟| 漠河县| 合江县| 庆阳市| 松桃| 乌拉特中旗| 南岸区| 新和县| 丽水市| 景洪市| 高台县| 包头市| 尼木县| 封开县| 潜山县| 普陀区| 大足县| 大厂| 廉江市| 怀宁县| 二连浩特市| 拉孜县| 淳安县| 林周县| 武胜县| 宁武县| 黎平县| 吉水县| 清水县| 铜陵市| 新宁县|