How to extract substring from string?

I have to extract string from a string for ex: p = 'robin goes to mary'
in format such that string after 'robin' and string before 'mary' is displayed i.e. ' goes to '
*without using the text in between i.e. ' goes to ', as I don't know what lies between the start and end strings in my original text *
without using extractBetween, extractAfter, extractBefore and string indices I am using Matlab2016a

回答 (3 件)

Birdman
Birdman 2018 年 2 月 24 日
編集済み: Birdman 2018 年 2 月 26 日

1 投票

p='robin goes to mary';
regexprep(p,'robin | mary','')

1 件のコメント

Image Analyst
Image Analyst 2018 年 2 月 26 日
Note: that trims off spaces. If you want the spaces on there, then you can do this:
middleString = regexprep(p,'robin|mary','')
Clever approach. +1 vote. (I wish I knew regexprep better!)

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

Image Analyst
Image Analyst 2018 年 2 月 24 日

1 投票

Try this:
p = 'robin goes to mary'
template = 'robin';
index1 = strfind(p, template) + length(template)
index2 = strfind(p, 'mary')
middleString = p(index1:index2)
% trim off any spaces if desired
middleString = strtrim(middleString)
Stephen23
Stephen23 2018 年 2 月 24 日
編集済み: Stephen23 2018 年 2 月 24 日

1 投票

Simpler to use regexprep:
>> str = 'robin goes to mary';
>> regexprep(str,'(^\w+|\w+$)','')
ans =
goes to

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

質問済み:

2018 年 2 月 24 日

コメント済み:

2020 年 2 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by