一些语言具有在长的正则表达式中嵌入换行符和空格的功能,以使其更具可读性
( yogi | booboo ) # match something \s ( the \s)? # optional article bear # bears are not Mr. Ranger
AFAICT golang并 没有 这样的选择,是这样吗?
缺少这一点,为了清楚起见,组成正则表达式是唯一的选择吗?还是还有另一个成语?我现在找不到go中长regexen的任何例子。
大多数时候,人们只是在评论中提供正则表达式匹配的内容。但是,通过浏览Go源代码,我发现了一个有趣的示例:
// removeRE is the list of patterns to skip over at the beginning of a // message when looking for message text. var removeRE = regexp.MustCompile(`(?m-s)\A(` + // Skip leading "Hello so-and-so," generated by codereview plugin. `(Hello(.|\n)*?\n\n)` + // Skip quoted text. `|((On.*|.* writes|.* wrote):\n)` + `|((>.*\n)+)` + // Skip lines with no letters. `|(([^A-Za-z]*\n)+)` + // Skip links to comments and file info. `|(http://codereview.*\n([^ ]+:[0-9]+:.*\n)?)` + `|(File .*:\n)` + `)`, )