RegExp to remove code between triangle brackets <>
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I want to remove text from a string contained within triangle brackets:
string1 = '<asdfasdf> text <asdf> <";>';
string2 = 'text';
I'm trying to use regexprep to remove the bracketed text, or regexp to extract non-bracketed text. Below code does not correctly identify all the bracketed strings.
string1 = '<asdfasdf> text <asdf> <";>';
exp = '^<.*>$';
ind = regexp(string1,exp);
1 Commento
Risposta accettata
Les Beckham
il 28 Ago 2025
Modificato: Les Beckham
il 28 Ago 2025
Try using non-greedy matching (with a question mark: ?). This works on your example (assuming you want to remove the brackets as well as the text between them):
string1 = '<asdfasdf> text <asdf> <";>';
exp = '<.*?>';
newstring = regexprep(string1, exp, '')
See documentation here
0 Commenti
Più risposte (1)
Walter Roberson
il 28 Ago 2025
This question cannot be answered meaningfully unless we know the exact rules by which it is legal to have additional "<" and ">" characters within the string contained in triangle brackets.
For example,
string1 = '<asdf<sam>asdf> text <asdf> <";>';
string2 = '<asdf<asdf> text <asdf> <";>';
string3 = '<asdf>asdf> text <asdf> <";>';
string4 = '<asdf<sa<foo>m>asdf> text <asdf> <";>';
string5 = '<asdf<s<a<asdf> text <asdf> <";>';
string6 = '<asdf>s>a>asdf> text <asdf> <";>';
are all potentially valid "characters within the string contained in triangle brackets". Allowing nested <> complicates regexp parsing a lot, especially if there is no upper limit on the number of nesting levels permitted.
0 Commenti
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!