フィルターのクリア

Recovering text between parentheses using regexp

43 ビュー (過去 30 日間)
Giri
Giri 2018 年 5 月 7 日
コメント済み: Fangjun Jiang 2018 年 5 月 7 日
Hi,
I am trying to create a regular expression using which i can recover the string between two parenthesis. I have created the following expression
exp='[^(]+.*[^)]+';
matchStr = regexp(str,exp,'match');
This expression works fine if the string is off any one of the formats mentioned below:
a) str = '(1r)';
b) str = '(0.5;0.5;'rrr')'; etc
but does not work if the string is off the form
str = '(r)'; or str = '(1)';
i.e. it doesn't pick up string which are just off 1 character between the parenthesis. I think i am missing something very basic here. Is it that regex will not work for single characters and will only work for strings?
Thanks in advance,
Regards,
Giri
  3 件のコメント
Stephen23
Stephen23 2018 年 5 月 7 日
Giri
Giri 2018 年 5 月 7 日
Thanks Rik..

サインインしてコメントする。

採用された回答

Fangjun Jiang
Fangjun Jiang 2018 年 5 月 7 日
exp = '[^()]*'; should be it.
  2 件のコメント
Giri
Giri 2018 年 5 月 7 日
Thanks Fangjun for that.. it works fine... Can you please explain how this works? Is it like, it just ignores ( and ) in the text and takes everything else?
Fangjun Jiang
Fangjun Jiang 2018 年 5 月 7 日
doc regexp
[^c1c2c3]: Any character not contained within the brackets.
expr*: 0 or more times consecutively.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

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