Textscan: How to skip a delimiter present within single quotes

During testscan I am using semicolin(;) as delimiter but I want to skip this delimiter if it is present within single quotes.
How can I do it?
Example,
string1 = string2 ; xyz.data = 'string3(1 = string4; 0 = string5)' ; sring6;
Expected output: Semicolon inside value to need to be skipped
value1 => string1 = string2
value2 => xyz.data = 'string3(1 = string4; 0 = string5)'
value3 => sring6

Risposte (1)

>> str = fileread('test.txt')
str =
string1 = string2 ; xyz.data = 'string3(1 = string4; 0 = string5)' ; sring6;
>> out = textscan(strrep(str,'''','"'),'%q%q%q','delimiter',';');
>> out{:}
ans =
'string1 = string2 '
ans =
'xyz.data = "string3(1 = string4; 0 = string5) '
ans =
'sring6'

2 Commenti

Thanks for your answer. Number of substring is dynamic in my case. I have mentioned 3 in my case but it can vary in each line of my file.
"I have mentioned 3 in my case but it can vary in each line of my file"
textscan might not be the best tool for this. Please upload a sample file by clicking the paperclip button.

Accedi per commentare.

Categorie

Prodotti

Release

R2016b

Tag

Commentato:

il 1 Mag 2020

Community Treasure Hunt

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

Start Hunting!

Translated by