How to parse information between two strings using regular expressions?

23 visualizaciones (últimos 30 días)
Hello,
I am trying to parse some information contained between the two strings "<sample>" and "</sample>" . I am new to regular expressions and would like to know what expression suits my requirement. The strings i mentioned have some operators in them. This is making the job difficult.
Regards, Math
  2 comentarios
Guillaume
Guillaume el 1 de Dic. de 2014
If you need more help than Thorsten's answer (which pretty much tells you everything that there is to it), then show us your current regular expression.
Math
Math el 2 de Dic. de 2014
Editada: Math el 2 de Dic. de 2014
"str = '<sample>a,b,c</sample>' "
I want to extract a,b,c from the str above into another string (say extract = a,b,c).
I wrote the following pattern:
"pat = '(<sample>)||(<\/sample>)' "
However, extract = regexp(str,pat,'match') yields " '<sample></sample>' " and not a,b,c.
help regexp says
| Match subexpression before or after the |
How do i get a,b,c to the string variable extract ? Please help.

Iniciar sesión para comentar.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 2 de Dic. de 2014
Editada: Andrei Bobrov el 2 de Dic. de 2014
str = '<sample>a,b,c</sample>';
out = regexp(str,'((?<=<sample>).*(?=<\/sample>))','match')
or
t = regexp(str,'<(|\/)sample>','splite')
out = t(~cellfun(@isempty,t))

Más respuestas (2)

Thorsten
Thorsten el 1 de Dic. de 2014
Editada: Thorsten el 1 de Dic. de 2014
help regexp
There it says
Characters that are not special metacharacters are all treated literally in
a match. To match a character that is a special metacharacter, escape that
character with a '\'.

Niels
Niels el 2 de Dic. de 2014
Alternatively, you may also consider using regexprep instead of regexp.
>> extract = regexprep(str,pat,'')
extract =
a,b,c

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by