我正在研究处理文本的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.
非常感谢任何帮助=)
答案 0 :(得分:1)
试试这个
\w*[^a-zA-Z0-9\ _\ -\ '\ "\ *\f\n\r\t\v\x20]?
答案 1 :(得分:0)
我的问题的解决方案是:
V1 = regexp(inpstr,'\w*[\'']*[^\_\-\"\*\s]*','match')
基本上,在[ ]
之间,您要放置要表达的字符,并在[^ ]
之间放置您想要跳过的字符。此外,\s
是所有空格的快捷方式。