1
從一系列符號中清除自由形式文本字符串時遇到了一些問題。該任務的最後一部分涉及識別任何名稱,並將其從字符串中刪除。幸運的是,所有名稱都是U-Cased(始終),相關信息放在名稱之前(始終)。SAS - 區分大小寫字符的文本解析
我的第一個想法是使用FIND函數來隔離名稱的起始位置,然後在起始位置之前輸出所有字符......但我無法確定如何使用「通配符」選項來抓取任何大寫字母的起始位置。下面的示例和嘗試包括 -
DATA SAMPLE;
INPUT TXT $;
CARDS;
firsT
Second
thIrd
foUrth
;
RUN;
Attempt1:
DATA TEST;
SET SAMPLE;
ID = FIND(TXT,'A'-'Z');
RUN;
ATTEMPT2:
DATA TEST;
SET SAMPLE;
ID = FIND(TXT,'A-Z');
RUN;
顯然,上述兩種嘗試不太遠彼此,但我找不到(或想想)另一種方法。希望有一些神祕的功能可以在這裏拯救...
這是我一直在尋找的功能!只需要確認...因爲人們的名字可以以任何字母開頭......在我指定源文件(本例中爲TXT)後,我認爲空引用「,,」是我需要的「通配符」風格? – SMW
空引用是顯式字符列表。 IE findc(txt ,,'u')等價於findc(txt,'ABCDEFGHIJKMNOPQRSTUVWXYZ')。如果需要,可以將可選的第三個參數與其他單個字符組合(如空格或短劃線或類似字符)。 – Joe
太棒了。檢查+ 1,謝謝。 – SMW