五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆91在线播放

  • <center id="8gusu"></center><rt id="8gusu"></rt>
    <menu id="8gusu"><small id="8gusu"></small></menu>
  • <dd id="8gusu"><s id="8gusu"></s></dd>
    樓主: 若水煙寒
    2059 8

    [問答] 求問SAS PRX中的一個字符匹配問題 [推廣有獎]

    • 3關(guān)注
    • 9粉絲

    博士生

    8%

    還不是VIP/貴賓

    -

    威望
    0
    論壇幣
    1431 個
    通用積分
    33.2663
    學(xué)術(shù)水平
    14 點
    熱心指數(shù)
    18 點
    信用等級
    12 點
    經(jīng)驗
    2716 點
    帖子
    183
    精華
    0
    在線時間
    175 小時
    注冊時間
    2011-5-11
    最后登錄
    2023-8-10

    +2 論壇幣
    k人 參與回答

    經(jīng)管之家送您一份

    應(yīng)屆畢業(yè)生專屬福利!

    求職就業(yè)群
    趙安豆老師微信:zhaoandou666

    經(jīng)管之家聯(lián)合CDA

    送您一個全額獎學(xué)金名額~ !

    感謝您參與論壇問題回答

    經(jīng)管之家送您兩個論壇幣!

    +2 論壇幣
    參看下面的代碼,想問一下Carol Echols中的Echols為什么匹配對應(yīng)的last變量?([^\s]+\s+)這個匹配到底表示的是啥意思……求高人解答,謝謝!


    data old;
       input name $60.;
       datalines;
    Judith S Reaveley
    Ralph F. Morgan
    Jess Ennis
    Carol Echols
    Kelly Hansen Huff
    Judith
    Nick
    Jones
    ;

    data new;
       length first middle last $ 40;
       re1 = prxparse('/(\S+)\s+([^\s]+\s+)?(\S+)/o');
       re2 = prxparse('/(\S+)(\s+)([^\s]+\s+)(?)(\S+)/o');
       set old;
       id1=prxmatch(re1, name);
       id2=prxmatch(re2, name);
       if id1 then
          do;
             first = prxposn(re1, 1, name);
             middle = prxposn(re1, 2, name);
             last = prxposn(re1, 3, name);
          end;
       if id2 then test=prxposn(re1, 4, name);
       put test=;
    run;


    二維碼

    掃碼加我 拉你入群

    請注明:姓名-公司-職位

    以便審核進群資格,未注明則拒絕

    關(guān)鍵詞:PrxMatch RXPARSE Middle length Morgan 克里斯蒂娜

    沙發(fā)
    webgu 發(fā)表于 2012-12-9 10:32:34 |只看作者 |壇友微信交流群
    確切說,與middle匹配的是([^\s]+\s+)? ,而不是([^\s]+\s+)。
    ?表示([^\s]+\s+)也就是中間名可以出現(xiàn)1次,也可以不出現(xiàn)。所以Echols被算做last了。
    已有 1 人評分學(xué)術(shù)水平 熱心指數(shù) 信用等級 收起 理由
    若水煙寒 + 1 + 1 + 1 熱心幫助其他會員

    總評分: 學(xué)術(shù)水平 + 1  熱心指數(shù) + 1  信用等級 + 1   查看全部評分

    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    藤椅
    老師她摸我 發(fā)表于 2012-12-9 13:33:19 |只看作者 |壇友微信交流群
    Carol Echols中的Echols匹配對應(yīng)的last變量,是因為語句last = prxposn(re1, 3, name);指定了capture buffer number(the number of capturing parentheses in the regex)為3。另:非正則表達式方法
    1. data new;
    2.         set old;
    3.         array newname {*} $8. first middle last;
    4.         nword=countw(name);
    5.         if nword ge 2 then do;
    6.                 i=1;
    7.                 do until(scan(name,i,' ')=' ');
    8.                         newname(i)=scan(name,i,' ');
    9.                         i+1;
    10.                 end;
    11.         end;
    12.                 else delete;
    13.         if nword=2 then do;
    14.                 newname(3)=newname(2);
    15.                 newname(2)=' ';
    16.         end;
    17.         drop name nword i ;
    18. run;
    復(fù)制代碼


    已有 1 人評分學(xué)術(shù)水平 熱心指數(shù) 信用等級 收起 理由
    若水煙寒 + 1 + 1 + 1 熱心幫助其他會員

    總評分: 學(xué)術(shù)水平 + 1  熱心指數(shù) + 1  信用等級 + 1   查看全部評分

    歡迎加入SAS群:144839730-蝸牛
    板凳
    若水煙寒 發(fā)表于 2012-12-9 13:58:44 |只看作者 |壇友微信交流群
    webgu 發(fā)表于 2012-12-9 10:32
    確切說,與middle匹配的是([^\s]+\s+)? ,而不是([^\s]+\s+)。
    ?表示([^\s]+\s+)也就是中間名可以出現(xiàn)1次, ...
    啊,那請問這個匹配幾次是怎么看出來的呢?還有那個括號的含義怎么理解呢?謝謝!按照這個意思之前的第一次匹配是算作這個嗎(\S+)\s+?
    報紙
    若水煙寒 發(fā)表于 2012-12-9 14:02:26 |只看作者 |壇友微信交流群
    老師她摸我 發(fā)表于 2012-12-9 13:33
    Carol Echols中的Echols匹配對應(yīng)的last變量,是因為語句last = prxposn(re1, 3, name);指定了[ ...
    謝謝嘞~但是如果指定prxposn(re1, 2, name);是怎樣的呢?是不是跟樓上一個意思滴……?
    地板
    webgu 發(fā)表于 2012-12-9 14:10:55 |只看作者 |壇友微信交流群
    若水煙寒 發(fā)表于 2012-12-9 13:58
    啊,那請問這個匹配幾次是怎么看出來的呢?還有那個括號的含義怎么理解呢?謝謝!按照這個意思之前的第一 ...
    +,出現(xiàn)1次或多次,
    ? 出現(xiàn)0次或1次,
    ()是創(chuàng)建分組,一個括號一個capture buffer 。
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    7
    若水煙寒 發(fā)表于 2012-12-9 15:30:55 |只看作者 |壇友微信交流群
    webgu 發(fā)表于 2012-12-9 14:10
    +,出現(xiàn)1次或多次,
    ? 出現(xiàn)0次或1次,
    ()是創(chuàng)建分組,一個括號一個capture buffer 。
    那請問括號外面的是算到匹配分組里的嗎?([^\s]+\s+)?比如括號外面這個“?”
    8
    webgu 發(fā)表于 2012-12-9 15:41:14 |只看作者 |壇友微信交流群
    ?的作用是前面的字符出現(xiàn)0次或1 次,有括號的作用于整個括號。
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    9
    若水煙寒 發(fā)表于 2012-12-9 17:08:31 |只看作者 |壇友微信交流群
    webgu 發(fā)表于 2012-12-9 15:41
    ?的作用是前面的字符出現(xiàn)0次或1 次,有括號的作用于整個括號。
    理解啦,謝謝^^~
    您需要登錄后才可以回帖 登錄 | 我要注冊

    本版微信群
    加好友,備注cda
    拉您進交流群

    京ICP備16021002-2號 京B2-20170662號 京公網(wǎng)安備 11010802022788號 論壇法律顧問:王進律師 知識產(chǎn)權(quán)保護聲明   免責(zé)及隱私聲明

    GMT+8, 2024-12-24 01:17