以下の文字列にquantity = 100;
100
を得るために正規表現を使用したいと思います。matlab正規表現
次の正規表現が返されないのはなぜですか?100
??
regexp('quantity=100;','(?=\w*\s*\=\s*)[^]+(?=\s*;$)','match','once')
以下の文字列にquantity = 100;
100
を得るために正規表現を使用したいと思います。matlab正規表現
次の正規表現が返されないのはなぜですか?100
??
regexp('quantity=100;','(?=\w*\s*\=\s*)[^]+(?=\s*;$)','match','once')
あなたが先に初めにregexで負の外観を使用する必要があり、これを試してみてください。
regexp('quantity=100;','(?<=\w*\s*\=\s*)[^]+(?=\s*;$)','match','once')
または
regexp('quantity=100;', '(?<=^.*\=\s*)(.*)(?=\s*;$)', 'match', 'once')
をする
正規表現をはるかに簡単です任意の数字に一致するのは\d
です。したがって、文字列の形式がtext=numbers
の場合は、次のようになります。
digits = regexp('quantity=100;', '\d', 'match');
result = [digits{:}]
result =
'100'
MATLABがマッチのセル配列を返し注意。したがって、'once'
は1
のみを返すため、使用することはできません。
これは 'result = regexp( 'quantity = 100;'、 '\ d +'、 'match')' –
これは、仕事をしました、ありがとう! –
私は[^] +が実際にエラーなしでコンパイルされるのを見たことがありません。それはMatlabのものでなければなりません。 – FailedDev
@FailedDev:はいそれは変ですが、少なくともmatlabで動作します – niels