如何在只知道一部分的情况下将字符串分成两部分?



你好,我正在寻找一种方法,将字符串分成两个部分时,只知道一个部分。为了澄清,没有分隔符来决定在哪里分割字符串。

在分割字符串之后,应该能够识别出生成的部分是字符串的左部分还是右部分。

考虑以下用例场景(一个非常简单的字符串,JS语法):

const subject = 'foobar';
const known = 'foo';
const [left, right] = splitBySegment(subject, known);
console.log(left, right); // foo bar

使用RegExp (JS语法):


function splitBySegment(subject, known) {
const escapeRegExp = new RegExp('[\^$.*+?()[]{}|]', 'g');
const knownEscaped = known.replace(escapeRegExp, '\$&');
const splitRegExp = new RegExp(
'^' +
`(?:${knownEscaped}|[A-Z]+(?=${knownEscaped}))` + // left
'|' +
`(?:${knownEscaped}|(?!${knownEscaped})[A-Z]+)` + // right
'$',
'g',
);
return subject.match(splitRegExp);
}

最新更新