DatistEQ之抽取文本內(nèi)容

V 2022 Q2版

數(shù)據(jù)處理過程中智玻,時常會遇到從字符串中提取特定內(nèi)容的場景,如從FTP的連接串中卫病,抽取用戶名乌妒。

ftp連接串:ftp://anonymous:guest@ftp.ncbi.nlm.nih.gov:125/gdgdsg/wrwq

在C語言中可以用scanf函數(shù),在DatistEQ如何實現(xiàn)呢撤蚊?

DatistEQ中,提供MatchGroup和MatchGroups兩個函數(shù),使用正則表達式席镀,抽取一個或一組數(shù)據(jù)。

MatchGroup函數(shù)格式:

string MatchGroup(string,regexString,[Optional] groupNames,[Optional] regexOptions)
說明:
分組正則表達式匹配顶捷,返回第一個匹配結(jié)果屎篱。
string,源文本字符串重虑;
regexString秦士,正則表達式;
groupNames提针,可選項曹傀,默認為空,多個組名以|分隔;
RegexOptions嗜价,可選項,默認為Compiled|IgnoreCase炭剪,用于設(shè)置正則表達式選項的枚舉值。支持:None,Compiled,CultureInvariant,ECMAScript,ExplicitCapture,
IgnoreCase,IgnorePatternWhitespace,Multiline,RightToLeft,Singleline媒鼓。

MatchGroups函數(shù)格式與MatchGroup相似:

list MatchGroups(string,regexString,[Optional] groupNames,[Optional] regexOptions)
說明:
分組正則表達式匹配错妖,返回所有匹配結(jié)果。 
對比案例1:未分組正則表達式
MatchGroup( "abc123def12344" , "[0-9]+")
輸出:123

MatchGroups( "abc123def12344" , "[0-9]+")
輸出:
[
    "123", //第一組
    "12344" //第二組
]

對比案例2:分組正則表達式潮模,未指定提取分組名稱
MatchGroup( "abc123def12344" , "(?<a1>[0-9]+)")
輸出:
{
    "0": "123",
    "a1": "123"
}

MatchGroups( "abc123def12344" , "(?<a1>[0-9]+)")
輸出:
[
    { //第一組
        "0": "123", //系統(tǒng)默認痴施,未指定組名
        "a1": "123"
    },
    {//第二組
        "0": "12344", //系統(tǒng)默認,未指定組名
        "a1": "12344"
    }
]

對比案例3:分組正則表達式动遭,指定一個提取分組名稱
MatchGroup( "abc123:45def12344:78" , "(?<a1>[0-9]+):(?<b1>[0-9]+)","a1" )
輸出:123

MatchGroups( "abc123:45def12344:78" , "(?<a1>[0-9]+):(?<b1>[0-9]+)","a1" )
輸出:
[
    "123", //第一組
    "12344" //第二組
]

對比案例4:分組正則表達式神得,指定多個提取分組名稱
MatchGroup( "abc123:45def12344:78" , "(?<a1>[0-9]+):(?<b1>[0-9]+)","a1|b1" )
輸出:
{
    "a1": "123",
    "b1": "45"
}

MatchGroups( "abc123:45def12344:78" , "(?<a1>[0-9]+):(?<b1>[0-9]+)","a1|b1" )
輸出:
[
    {//第一組
        "a1": "123",
        "b1": "45"
    },
    { //第二組
        "a1": "12344",
        "b1": "78"
    }
]


例1:
MatchGroup("關(guān)井油壓5.7MPa,套壓8.2MPa哩簿。", "油壓(?<P1>[0-9]+(\.[0-9]+){0,1})" ,"P1")
輸出:5.7

例2:
MatchGroup("關(guān)井油壓5.7MPa,套壓8.2MPa。", "油壓(?<P1>[1-9]\d*.\d*|0.\d*[1-9]\d*)[\s\S]*套壓(?<P2>[1-9]\d*.\d*|0.\d*[1-9]\d*)" ,"P1|P2")
輸出:
{
    "P1": "5.7",
    "P2": "8.2"
}

例3:
MatchGroup( "ftp://anonymous:guest@ftp.ncbi.nlm.nih.gov:21/gdgdsg/wrwq" , "(?<ftp>sftp|ftp)?://((?<username>\w+):(?<password>\w+)@)*(?<url>[.A-Za-z0-9]*)(:(?<port>[0-9]*))*(?<remotepath>/[\s\S]*)*","ftp|username|password|url|port|remotepath" )
輸出:
{
    "ftp": "ftp",
    "username": "anonymous",
    "password": "guest",
    "url": "ftp.ncbi.nlm.nih.gov",
    "port": "21",
    "remotepath": "/gdgdsg/wrwq"
}

后記:
MatchGroup函數(shù)配合“解析JSON”節(jié)點羡玛,分隔字段內(nèi)容宗苍。

對象
對象數(shù)組
數(shù)值數(shù)組
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渺杉,一起剝皮案震驚了整個濱河市挪钓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌倚评,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盔性,死亡現(xiàn)場離奇詭異呢岗,居然都是意外死亡,警方通過查閱死者的電腦和手機后豫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門挫酿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人早龟,你說我怎么就攤上這事∷剩” “怎么了翘悉?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵妖混,是天一觀的道長轮洋。 經(jīng)常有香客問我,道長祥楣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任误褪,我火速辦了婚禮兽间,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘀略。我一直安慰自己,他們只是感情好帜羊,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布讼育。 她就那樣靜靜地躺著,像睡著了一般窥淆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扛伍,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天词裤,我揣著相機與錄音,去河邊找鬼逆航。 笑死渔肩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的周偎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼澳眷,長吁一口氣:“原來是場噩夢啊……” “哼蛉艾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拓瞪,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤助琐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沟堡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡航罗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年粥血,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片复亏。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡缔御,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耕突,到底是詐尸還是另有隱情,我是刑警寧澤炕泳,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布上祈,位于F島的核電站,受9級特大地震影響登刺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一掉蔬、第九天 我趴在偏房一處隱蔽的房頂上張望矾瘾。 院中可真熱鬧,春花似錦壕翩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珍策。三九已至,卻和暖如春屯耸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疗绣。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工铺韧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祟蚀。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像患雏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淹仑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容