这个正则表达式怎么写呀?

正则获取指定字符到下一个大写字符之间的内容

阅读 2k
4 个回答
function getContent(str, startChar) {
    const reg = new RegExp(`${startChar}([^A-Z]*)`);
    if (reg.test(str)) {
        return RegExp.$1;
    }
    return '';
}
getContent('234exsdddffX334', '2'); // 34exsdddff
const str = "This is a Test String.";
const regex = /i([^A-Z]*)/;
const result = regex.exec(str);
console.log(result[1]);

// 输出 `s is a `

不确定是不是你想要的结果,其中的 i 可以换成你想要的指定字符。

const regex = /指定字符([a-z]+)(?=[A-Z])/g;
const str = '指定字符abcDEF指定字符ghIJK指定字符lmNOP';

while ((match = regex.exec(str)) !== null) {
  console.log(match[1]);
}

image.png

新手上路,请多包涵

可以使用正则表达式来获取指定字符到下一个大写字符之间的内容。具体正则表达式如下:

/(?<=指定字符)[a-z]*(?=[A-Z])/g

以上正则表达式中,(?<=指定字符)表示匹配前面是指定字符;[a-z]*表示匹配任意小写字母(0个或多个);(?=[A-Z])表示匹配后面是大写字母。

使用该正则表达式可以将字符串中所有符合条件的子串提取出来。以下是一个示例代码:

const str = 'abcd_efgh_IJKL_mnop_QRST';
const regex = /(?<=_)[a-z]*(?=[A-Z])/g;
let match = null;
const result = [];

while ((match = regex.exec(str)) !== null) {
  result.push(match[0]);
}

console.log(result); // ['efgh', 'mnop']

以上代码中,首先定义了一个字符串str,然后使用上面的正则表达式进行匹配。通过while循环迭代匹配结果,将每个匹配项存储在数组result中。最后输出result数组即可得到所有符合条件的子串。

推荐问题
宣传栏