0

テキストを処理する MATLAB で作業しています。このためには、正規表現が正しく機能する必要があります。

これまでのところ、この正規表現を以下に示します。これはほとんどすべてで機能しますが、単語の一部としてアポストロフィを読み取るように何かを追加したいと思います。

V1 = regexp(inpstr,'\w*[^a-zA-Z0-9\ _\ -\ "\ *\f\n\r\t\v\x20]?','match');

したがって、私の質問の例は次のとおりです。文字列がある場合:

'Hi, let's play some ball.'

私は正規表現が私に与えることを望みます'Hi,' - 'let's' - 'play' - 'some' - 'ball.'

そして現在、それは私に与えます'Hi,' - 'let' - 's' - 'play' - 'some' - 'ball.'

問題は、MATLAB で '. 私はそれを追加しようとしましたが、これは起こりました:??? Error: File: TestScript.m Line: 13 Column: 38 The input character is not valid in MATLAB statements or expressions.

どんな助けでも大歓迎です=)

4

2 に答える 2

1

これを試して

\w*[^a-zA-Z0-9\ _\ -\ '\ "\ *\f\n\r\t\v\x20]?
于 2013-06-10T13:33:09.773 に答える
0

私の問題の解決策はこれでした:

V1 = regexp(inpstr,'\w*[\'']*[^\_\-\"\*\s]*','match')

基本的には[ ]表現したいキャラを間[^ ]に入れて、飛ばしたいキャラを挟む。また、\sすべての空白のショートカットでした。

于 2013-06-12T16:27:37.807 に答える