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 回答