How to parse information between two strings using regular expressions?

16 次查看(过去 30 天)
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 个评论
Guillaume
Guillaume 2014-12-1
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 2014-12-2
编辑:Math 2014-12-2
"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.

请先登录,再进行评论。

采纳的回答

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

更多回答(2 个)

Thorsten
Thorsten 2014-12-1
编辑:Thorsten 2014-12-1
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 2014-12-2
Alternatively, you may also consider using regexprep instead of regexp.
>> extract = regexprep(str,pat,'')
extract =
a,b,c

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by