extract word before and after character

2 次查看(过去 30 天)
i want to extract string before "(" and after " " or "," (space comma)
example:
input: pilo(52),iko(54);
result:
pilo
iko
  4 个评论
aldo
aldo 2023-12-19
hi, in " () " there is only number :
(34)
(32)
(1)
aldo
aldo 2023-12-19
编辑:aldo 2023-12-20
other example : (the format data is array cell)
g(1,:)={'input: pilo(52),iko(54)' }
g(2,:)={'input:iko(54)' }
g(3,:)={'input:pilo(52),iko(54)' }
g(4,:)={'input:pilo(52),iko(54),op(23)' }
in one cell there can be several words
finally I want to capture this:
in g(1,:) :
pilo 52
iko 54
in g(2,:)
iko 54
in g(3,:)
pilo 52
iko 54
in g(4,:)
pilo 52
iko 54
op 23

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2023-12-20
编辑:Stephen23 2023-12-20
C = {'input: pilo(52),iko(54)'; 'input:iko(54)'; 'input:pilo(52),iko(54)'; 'input:pilo(52),iko(54),op(23)'}
C = 4×1 cell array
{'input: pilo(52),iko(54)' } {'input:iko(54)' } {'input:pilo(52),iko(54)' } {'input:pilo(52),iko(54),op(23)'}
X = regexp(C,'(\w+)\((\d+)','tokens');
X = cellfun(@(c)vertcat(c{:}),X,'uni',0)
X = 4×1 cell array
{2×2 cell} {1×2 cell} {2×2 cell} {3×2 cell}
X{:}
ans = 2×2 cell array
{'pilo'} {'52'} {'iko' } {'54'}
ans = 1×2 cell array
{'iko'} {'54'}
ans = 2×2 cell array
{'pilo'} {'52'} {'iko' } {'54'}
ans = 3×2 cell array
{'pilo'} {'52'} {'iko' } {'54'} {'op' } {'23'}
However... regular expressions are very precise things. Writing them well requires understanding the precise conditions that they should match. Thus usually when someone posts a question with "simplified" text it just delays getting a working solution.
  2 个评论
aldo
aldo 2023-12-20
Can I ask you for further help?
i find this array cell
{'pilo'} {'52'}
{'iko' } {'54'}
{'op' } {'23'}
now I have to use these found names to capture other words:
example:
xx1(pilo,ohlcvalues) and xx1(op,ohlcvalues)=false
xx2(+iko,ohlcvalues)
i want to catch xx1 and xx2
rules: (example using 'pilo')
(pilo, xxc )
(+pilo, xvs )
(-pilo, xcs )
i want to catch the name befone '('
In this example :
xx1(pilo, .. ) ======>xx1
xx2(+pilo, .. ) ======>xx2
xx3(-pilo, .. ) ======>xx3
the new cell array created must be:
{'pilo'} {'52'} {'xx1'}

请先登录,再进行评论。

更多回答(0 个)

类别

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