Regex
匹配失败的行为
从上一次匹配的起始位置的下一位继续尝试匹配:当正则表达式的匹配失败时,通常会从当前匹配的起始位置的下一位开始尝试匹配。这意味着如果某个字符不匹配,正则引擎会移动到下一个字符并重新开始匹配。
不同输入方式的换行符\n
实际换行符:在字符串中使用 \n
会导致换行。
字面字符:在字符串中使用 \\n
会被视为普通字符,不会产生换行效果。
针对两种不同输入方式应该用不同正则
1 | def regex1(code): |
(代码内读取)实际换行符
1 | # 代码内读取 |
(外文件读取)字面\n
1 | # 外文件读取 |
没有限制默认正确
对于例子
1 | printf("page table %p\n", pagetable); |
使用正则
1 | r'(\bprintf\s*\(\s*"[^"\n]*)(\n)([^"]*"\s*\))' |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments