Regex 带有字符串变量的正则表达式问题

Regex 带有字符串变量的正则表达式问题,regex,string,parsing,stata,Regex,String,Parsing,Stata,我已经研究这个问题太久了,我似乎无法想出一个正则表达式来解决这个问题。我知道我可以使用其他一些编码语言来迭代字符,但我只想使用Stata来完成,而不必使用R或Python。下面是: 我试图解析的字符串通常具有如下设置: Name (Type / $## Million / #### ) 其中,有时缺少最后一个结束括号,但如果缺少,则最后一个字符是字符串的结尾。我希望能够匹配括号的内容,但问题是有时名称包含一个括号,如 Bank (other) (... / ... / ...) 而且,有时T

我已经研究这个问题太久了,我似乎无法想出一个正则表达式来解决这个问题。我知道我可以使用其他一些编码语言来迭代字符,但我只想使用Stata来完成,而不必使用R或Python。下面是:

我试图解析的字符串通常具有如下设置:

Name (Type / $## Million / #### )
其中,有时缺少最后一个结束括号,但如果缺少,则最后一个字符是字符串的结尾。我希望能够匹配括号的内容,但问题是有时名称包含一个括号,如

Bank (other) (... / ... / ...)
而且,有时Type也有一个插入词,比如

Name (Loan (other) / ... / ...)
基本思想是,我正在寻找包含两个由其他字符分隔的正斜杠的括号集的内容。你知道怎么做吗

到目前为止,我想到的最好的方法是:

\(([^\)]*\/[^\)]*\/.*\)?)$
但是,当集合中有一个括号,我想抓住它时,它就遇到了一个问题。任何帮助都将不胜感激。下面是一些示例行。每一行都应视为一个新字符串

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)

我已经让你的沮丧的表达站住了:通常它会被删掉,因为它与技术问题无关,但在这里寻找一个过于复杂的解决方案是问题的一部分。我经常看到人们在应用基本的字符串命令和函数来解决问题时,会专注于搜索类似于Grail的正则表达式

这是一条进去的路。一些字符串的进一步编辑似乎是首选工具,
split
subinstr()

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           |
     +------------------------------------------------------------+

我已经让你的沮丧的表达站住了:通常它会被删掉,因为它与技术问题无关,但在这里寻找一个过于复杂的解决方案是问题的一部分。我经常看到人们在应用基本的字符串命令和函数来解决问题时,会专注于搜索类似于Grail的正则表达式

这是一条进去的路。一些字符串的进一步编辑似乎是首选工具,
split
subinstr()

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           |
     +------------------------------------------------------------+