2016-03-18 9 views
0

文字列中の大文字の位置を探す際に、以前の質問/回答を尾行します。上記のシナリオのIDは、前の回答で確認できますが、SAS FIND() - 2つの連続した大文字の位置の検索

DATA TEST; 
SET SAMPLE; 
_endpos= FINDC(TXT,,'u'); 
ID = substr(TXT,1,_endpos-1); 
RUN; 

2つの連続した大文字が連続している条件を調べるにはどうすればよいでしょうか?どのように「U」オプションここに....

DATA TEST; 
SET SAMPLE; 
_endpos= FINDC(TXT,__,'u'); 
ID = substr(TXT,1,_endpos-1); 
RUN; 

または

DATA TEST; 
SET SAMPLE; 
_endpos= FINDC(TXT, ,'u'); 
ID = substr(TXT,1,_endpos-1); 
RUN; 
+0

ネイティブSAS関数の代わりに正規表現関数を見てください。あなたの新しい人がビルダーを使用してコードを正しいものにするのに役立ちます。 http://regexr.com – Reeza

答えて

1

の二つの連続発生を表現するための情報を提供するために、わからない私は、空白や句読点が含まれるように区切り文字を変更しました。

data _2upcase; 
    input string $50.; 
    do c=1 by 1 until(l eq 2 or p eq 0); 
     call scan(strip(string),c,p,l,,'ldsp'); 
     end; 
    length _2upcase $2; 
    _2upcase = substrn(string,p,l); 
    cards; 
nndkd11UUndkdLLL 
kdnakaliueoina 
nnnlllLLLlllLLlll 
thisISa2DIgit 
this IS silly 
this.IS.silly 
;;;; 
    run; 
+0

これは私が必要とするものですが、同じ大文字の2つを連続して解析しているようです...文字が2つ連続する大文字の位置を見つける必要があるため同じではありません。だから本当に...いつも同じ文字ではない2つの連続するアルファ文字の開始位置を探しています。不明な質問を申し訳ありません。 – SMW

+0

@SMWあなたはそれをテストしていないようです。 2つのデリミタクラスを追加しました。プログラムは長さ2の文字列を見つけ、小文字、数字、空白または句読点で区切ります。 –

+0

いいえ...私はテストしませんでした...しかし、オフィスに戻ることを熱望しています。お詫び...そして、あなたは私の意図を理解したようです...私がテストすると、あなたに+1と古いチェックマークを投げます!質問...私はReezasが正規表現を提案したことを調べました...これは、データステップ処理(パールは私のためのジャングルです! – SMW

関連する問題