3

我需要拆分以下字符串

the quick brown fox jumps over the lazy dog

进入以下标记:

  1. 快速的棕色狐狸跳过
  2. 懒狗

因此,为了解释,我想拆分thethe在前面的数组元素中包含分隔符(而不是作为它自己的单独元素)。

任何人都可以对此有所了解,或者给我正确的正则表达式吗?

我正在使用 C#。

4

1 回答 1

4

您需要使用后视 ( ?<=)。这个名字说明了一切,查看前面的字符,看看它们是否匹配某个给定的模式。

这应该有效:

"(?<=\\bthe) "

因此,在任何空格处,检查前面的字符是否为"the",如果是,则匹配。

注意 - 我们还需要包含单词边界\\b(转义\b),否则类似的东西"bathe"也会匹配。

如果没有后视,我们将检查所有空格:

   v     v     v   v     v    v   v    v
the quick brown fox jumps over the lazy dog

通过后视,我们只会匹配"the"之前的那些:(暂时忽略\\b

"the "- 刚找到一个空格,最后一个字符是"the",所以匹配。
"quick "- 刚刚找到另一个空格,但最后一个字符是"...k",所以不匹配。
等等

测试

于 2013-03-17T20:13:27.843 回答