撇号作为一个单词的一部分与正则表达式在MATLAB中

时间:2013-06-10 13:28:42

标签: regex matlab apostrophe

我正在研究处理文本的MATLAB。为此,我需要正则表达式才能正常工作。

到目前为止,我在下面有这个正则表达式,几乎适用于所有内容,但我想添加一些内容,以便它将撇号作为单词的一部分读取。

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

所以,我的一个示例问题是:如果我有一个字符串:

'Hi, let's play some ball.'

我希望regexp能够给我'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.

非常感谢任何帮助=)

2 个答案:

答案 0 :(得分:1)

试试这个

\w*[^a-zA-Z0-9\ _\ -\ '\ "\ *\f\n\r\t\v\x20]?

答案 1 :(得分:0)

我的问题的解决方案是:

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

基本上,在[ ]之间,您要放置要表达的字符,并在[^ ]之间放置您想要跳过的字符。此外,\s是所有空格的快捷方式。