Searching a String using regexp
3 次查看(过去 30 天)
显示 更早的评论
ASDF=
Manager_Mark
NumOfAxes: 2
PoductVal: 142
VerifyBy : 'Mark'
John
FilesServed: 142
ClearedFile: 128
PendingFile: 14
Mark
FilesServed: 124
ClearedFile: 124
PendingFile: 0
ASDF is my charecter array with details. and all my details will be in this format.. The things which would be changing are "Manager_mark" , "John" and "Mark" .
I just need to find these three Strings within the data using regexp . I cannot use strfind as these three values gets randomly updated.. I tried using regexp but couldn't do so.. Can anyone tell me the effecient way (or) the expression needed to search the three values within this character array
6 个评论
采纳的回答
Walter Roberson
2016-3-28
And how are you going to distinguish between an employee named "Danny:" (including the colon) and a property value prefixed by "Danny:" ?
I would put it to you that employee names and manager_ entries are prefixed with a certain number of blanks, and that properties for each employee or manager_ entry are prefixed with a different and larger number of blanks.
Assuming your char array has embedded newline to divide it into lines:
ASDF = strjoin( {
' Manager_Reza'
' NumOfAxes: 2'
' PoductVal: 142'
' VerifyBy : ''Reza'''
' VerifyOn : ''Dec-21'''
' Danny'
' FilesServed: 10'
' ClearedFile: 10'
' PendingFile: 0'
' Timothy'
' FilesServed: 129'
' ClearedFile: 12'
' PendingFile: 0'}.', char(10));
regexp(ASDF, '(?<=^\s{3})(\S+)', 'match', 'lineanchors')
If instead your char array is a 13 x something char array, blank padded, then to use regexp() on it you would need to cellstr() it, as regexp cannot be used on a 2D char array.
3 个评论
Walter Roberson
2016-3-28
regexp(ASDF, '(?<=^\s{3})(.+)', 'match', 'lineanchors', 'dotexceptnewline')
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!