JavaScript中匹配首字母大写且以冒号结尾内容的正则表达式求解
匹配首字母大写且以冒号结尾内容的正则方案
要提取你示例中冒号前、首字母大写的内容,用这个正则表达式就可以:/[A-Z][A-Za-z\s]*(?=:)/g
正则拆解
[A-Z]:锁定开头的大写字母,满足首字母大写的要求[A-Za-z\s]*:匹配后续任意数量的大小写字母或空格,支持像"Article number"这种带空格的短语(?=:):正向预查,确保当前匹配的内容后面紧跟冒号,不会把冒号包含进去g:全局匹配,一次性找出所有符合条件的结果
JavaScript 示例代码
const myStr = `Title: Consectetur adipiscg elit Description: Sed sit amet eros diam Details: Vestibulum a eros ut massa interdum consectetur Article number: AYHMNR`; const regex = /[A-Z][A-Za-z\s]*(?=:)/g; const results = myStr.match(regex); console.log(results); // 输出: ["Title", "Description", "Details", "Article number"]
说说你之前尝试的问题
你用的/[:]/i只能单独匹配冒号,没法提取冒号前的内容;而\b[A-Z(...)].*?\b里的单词边界\b会在遇到空格时失效(比如"Article number"里的空格会让正则提前停止匹配),所以没法完整提取带空格的短语。
内容的提问来源于stack exchange,提问作者Alli Mam
相关产品推荐
相关产品推荐

