フィルターのクリア

Matching substrings with regexp

4 ビュー (過去 30 日間)
Tim
Tim 2014 年 9 月 11 日
回答済み: per isakson 2014 年 9 月 11 日
I'm trying to identify the subexpressions of a formula such as (real cases much longer):
y = ((a + b) * (c / d) + ( e + f ))
The subexpressions are always separated by pairs of parenthesis as in the example above. It seems like I should be able to use a regular expression with a rule like (intuitively) match "an initial left parenthesis, any characters (but no parenthesis), and a terminating right parenthesis" to get:
(a + b) (c / d) (e + f)
Can anybody suggest a regular expression to do this? Or any way other than a regular expression?

採用された回答

Guillaume
Guillaume 2014 年 9 月 11 日
編集済み: Guillaume 2014 年 9 月 11 日
subexpressions = regexp(expression, '\([^()]+\)', 'match')
will match any sequence with two brackets enclosing one or more non-bracket.

その他の回答 (1 件)

per isakson
per isakson 2014 年 9 月 11 日
AFAIK: That is not possible with Matlab's regular expression. Recursion is needed. With Perl (and other languages it is possible). See http://perl.plover.com/yak/regex/samples/slide083.html
"any way other than" &nbsp See parse_equation

カテゴリ

Help Center および File ExchangeString Parsing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by