2017-02-28 4 views
0

私はこの問題を長年にわたって解決してきましたが、これを解決する正規表現を思いつくことはできません。私は文字を繰り返し処理するために他のコーディング言語を使うことができると知っていますが、Stataでそれをやりたいだけで、RやPythonに入る必要はありません。ここに行く:次のように私は、一般的に解析しようとしている文字列変数の正規表現の問題

文字列が設定している:最終エンド括弧が欠落しているが、それがある場合、最後の文字が最後である時々

Name (Type/$## Million/####) 

文字列の私は、括弧の内容と一致することができるようにしたいが、問題は時々名前が時々タイプ

Name (Loan (other)/.../...) 

のように、同様の括弧を持って、また

Bank (other) (.../.../...) 

のように、括弧のが含まれていることです基本的な考え方は、他の文字で区切られた2つのスラッシュを含むかっこのセットの内容を探していることです。どのようにこれを行うにはどのようなアイデア?

\(([^\)]*\/[^\)]*\/.*\)?)$ 

しかし、括弧は私がつかむしたいセットがの内側に存在するとき、それは問題に実行します:

私がこれまでに作ってみた最高です。どんな助けでも大歓迎です。ここにいくつかのサンプルラインがあります。各行は新しい文字列として扱う必要があります。

IFC (Equity/$12 Million/1993 
IFC (Equity/$28 Million/1995) 
IFC (Loan/$30 Million/1995 
IFC (Syndication/$40 Million/1995) 
BOAD (Loan/$7 Million/1995 
IFC (Equity/$5 Million/1997) 
IFC (Loan/$13 Million/1997 
MIGA (Guarantees Only) (Guarantee/$30 Million/1995) 
IFC (Equity/$2 Million/1997 
IFC (Syndication/$3 Million/1997 
IFC (Equity/$1 Million/1998 
IFC (Syndication/$12 Million/1998 
IFC (Quasi-equity/$7 Million/1998 
IFC (Risk Management (including Political Risk Insurance)/$1 Million/1994) 

答えて

2

私は欲求不満スタンドのあなたの表現を聞かせている:通常、それは技術的な問題のように無関係なアウト編集したが、ここでは、あまりにも複雑な解決策を探している問題の一部であることになります。基本的な文字列コマンドや関数を適用するとGrailのような正規表現が検索され、問題が解決されることがよくありました。

ここには方法があります。文字列をさらに編集するには、splitsubinstr()のいずれかのツールを選択するようにしてください。

clear 
input str80 mydata 
"IFC (Equity/$12 Million/1993" 
"IFC (Equity/$28 Million/1995)" 
"IFC (Loan/$30 Million/1995" 
"IFC (Syndication/$40 Million/1995)" 
"BOAD (Loan/$7 Million/1995" 
"IFC (Equity/$5 Million/1997)" 
"IFC (Loan/$13 Million/1997" 
"MIGA (Guarantees Only) (Guarantee/$30 Million/1995)" 
"IFC (Equity/$2 Million/1997" 
"IFC (Syndication/$3 Million/1997" 
"IFC (Equity/$1 Million/1998" 
"IFC (Syndication/$12 Million/1998" 
"IFC (Quasi-equity/$7 Million/1998" 
"IFC (Risk Management (including Political Risk Insurance)/$1 Million/1994)" 
end 

split mydata, parse(/) 
rename (mydata?) (what howmuch when) 
destring when, ignore(")") replace 

list what how when 

    +------------------------------------------------------------+ 
    1. |              what | 
    |            IFC (Equity | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $12 Million   |   1993   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    2. |              what | 
    |            IFC (Equity | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $28 Million   |   1995   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    3. |              what | 
    |             IFC (Loan | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $30 Million   |   1995   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    4. |              what | 
    |           IFC (Syndication | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $40 Million   |   1995   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    5. |              what | 
    |            BOAD (Loan | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $7 Million   |   1995   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    6. |              what | 
    |            IFC (Equity | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $5 Million   |   1997   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    7. |              what | 
    |             IFC (Loan | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $13 Million   |   1997   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    8. |              what | 
    |       MIGA (Guarantees Only) (Guarantee | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $30 Million   |   1995   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
    9. |              what | 
    |            IFC (Equity | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $2 Million   |   1997   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
10. |              what | 
    |           IFC (Syndication | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $3 Million   |   1997   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
11. |              what | 
    |            IFC (Equity | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $1 Million   |   1998   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
12. |              what | 
    |           IFC (Syndication | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $12 Million   |   1998   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
13. |              what | 
    |           IFC (Quasi-equity | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $7 Million   |   1998   | 
    +------------------------------------------------------------+ 

    +------------------------------------------------------------+ 
14. |              what | 
    | IFC (Risk Management (including Political Risk Insurance) | 
    |------------------------------------------------------------| 
    |    howmuch   |   when   | 
    |   $1 Million   |   1994   | 
    +------------------------------------------------------------+