在以下字符串中:quantity = 100;
我想使用正则表达式来获取100
。
为什么以下正则表达式不返回100
??
regexp('quantity=100;','(?=\w*\s*\=\s*)[^]+(?=\s*;$)','match','once')
答案 0 :(得分:7)
匹配任何数字的正则表达式为\d
。因此,如果您的字符串仅为text=numbers
形式,则以下内容将起作用。
digits = regexp( 'quantity=100;', '\d', 'match');
result = [digits{:}]
result =
'100'
请注意,MATLAB返回匹配的单元格数组。因此,您无法使用'once'
,因为它只会返回1
。
答案 1 :(得分:2)
你应该在开头使用负面的前瞻性正则表达式,试试这个:
regexp('quantity=100;','(?<=\w*\s*\=\s*)[^]+(?=\s*;$)','match','once')
或
regexp( 'quantity=100;', '(?<=^.*\=\s*)(.*)(?=\s*;$)', 'match', 'once' )
更简单