0

好的,我承认 RegEx 很糟糕,因为我很少需要它,但我发现自己处于一个简单的解析并没有削减它的情况。因此,在工作时试图自学整个 RegEx 后,我最终放弃并请教了专家。我只是在解析一个 sql 文件并将其拆分为GO语句。问题是我不能把GO从其他词中提取出来,比如CREATE TABLE GOPHER. 所以我认为当我有一行只有空格并且GO不区分大小写时说我拆分是很安全的。

这就是我所拥有的,我认为它非常接近,但我做错了,因为它目前不匹配任何东西。

^+\s*[GO]\s*\Z

*note case 可以用忽略大小写标志来处理,所以我不担心

如果我简单地写

^+[GO]+\Z

它主要工作,但它不会忽略 之前和之后的空格GO,我认为\s*会这样做,但它似乎没有返回任何匹配项。任何人都可以为我解决这个问题,并简要解释一下我在这里遇到的问题?

4

1 回答 1

3

将 Regex.Split 与模式一起使用,该模式@"(?<=\bGO\b)"与完整单词“GO”之后的零宽度边界匹配。

于 2012-06-05T14:41:52.303 回答