我需要拆分以下字符串
the quick brown fox jumps over the lazy dog
进入以下令牌:
因此,为了解释,我想拆分the
,但在前面的数组元素中包含the
分隔符(不是它自己的单独元素)。
任何人都可以对此有所了解或者给我正确的正则表达式吗?
我正在使用C#。
答案 0 :(得分:4)
您需要使用look-behind(?<=
)。这个名字说明了一切,看看以前的字符,看看它们是否符合某种给定的模式。
这应该有效:
"(?<=\\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"
,所以没有匹配
等