仅在MATLAB中的行首处匹配正则表达式

Mar*_*.H. 3 regex matlab

我有一个跨越多行的字符串.换行符是LF,如在"hello"和"world"之间有换行符的"hello world"示例中所示:

some_bytes = [104  101  108  108  111 10 119  111  114  108  100];
some_string = char(some_bytes);

disp(some_string)
Run Code Online (Sandbox Code Playgroud)

我想匹配序列"wo",但只有它出现在一行的开头.但是使用正则表达式

idx = regexpi(some_string,'^wo');
Run Code Online (Sandbox Code Playgroud)

返回一个空数组.我究竟做错了什么?

Mar*_*der 9

^默认情况下,仅匹配字符串的开头.您可以使用(?m)搜索标志激活多行模式:

idx = regexpi(some_string,'(?m)^wo');
Run Code Online (Sandbox Code Playgroud)

或者,您可以提供选项'lineanchors'.请参阅文档.