Find the string into an special bracket

3 vues (au cours des 30 derniers jours)
Tan Phan
Tan Phan le 21 Juil 2018
Modifié(e) : Jan le 23 Juil 2018
Hello All, I have a string.
Ex: str = 'abc = "xyz";'
I want to use regexp command to find out "xyz" in below string.
my patern :
pat = '^=.;$'
with meaning (as my understanding)
_^= : beginning with =
. : get all thing between
;$ : ending with ;_
and run with
tk = regexp(str, pat) --> tk = [] in result
what wrong with my commands?
Thanks!

Réponse acceptée

Jan
Jan le 21 Juil 2018
Modifié(e) : Jan le 21 Juil 2018
  • ^ is the start of the string, not of the searched pattern.
  • Equivalently $ is the end of the string, not the pattern, too.
What about:
regexp(str, '"(.*?)"', 'match')
or
regexp(str, '"([^"]*)"', 'match')
  2 commentaires
Jan
Jan le 23 Juil 2018
[MOVED from section for answers] Tan Phan wrote:
Thank for your answer.
I have more question.
What happen if str is not a string I input from command Window.
I save it in file and using fopen/textscan to parse it.
In that file with information : abc = 'xyz';
I changed "xyz" to 'xyz' and I can not parse it with your regexp command ( ' '(.*?)' ' or ' '([^']*)' ') is not available in Matlab with my test.
Jan
Jan le 23 Juil 2018
Modifié(e) : Jan le 23 Juil 2018
"Is not available"? Remember that you need two quote characters inside a string to represent quote:
str = 'This is one quote: [''] '
Run this in the command window to check it.
Parsing quotes can interfere with e.g. "it's"

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by