Javascript Regex:在每行的单个字符之前获取匹配项

Javascript Regex:在每行的单个字符之前获取匹配项,javascript,regex,Javascript,Regex,我想使用JavaScript对以下文本进行一些正则表达式匹配: 文字:废话 一些文字:废话 更多的文字:废话 其他文字:废话 我想匹配每个冒号前面的所有单词:文本,一些文本,更多文本,其他文本。到目前为止,我只能用以下表达式匹配第一个匹配项:/^(.*?):/g(第1组) 如何匹配所有事件?(每行上正好有一个冒号) 根据我所读的内容,我认为我需要使用[\s\s],但我不确定如何使用。您可以查找第一个字符:,但使用m标志使匹配在“多行”基础上运行: /^([\w ]+?):/gm 查看下面的可视

我想使用JavaScript对以下文本进行一些正则表达式匹配:

文字:废话

一些文字:废话

更多的文字:废话

其他文字:废话

我想匹配每个冒号前面的所有单词:
文本
一些文本
更多文本
其他文本
。到目前为止,我只能用以下表达式匹配第一个匹配项:
/^(.*?):/g
(第1组)

如何匹配所有事件?(每行上正好有一个冒号)


根据我所读的内容,我认为我需要使用
[\s\s]
,但我不确定如何使用。

您可以查找第一个字符
,但使用
m
标志使匹配在“多行”基础上运行:

/^([\w ]+?):/gm
查看下面的可视示例

并查看将整个文本块中的所有匹配项放入数组的示例:

let text=`
文字:废话
一些文字:废话
更多的文字:废话
其他文字:废话
`;
让捕获=[];
text.replace(/^([\w]+?):/gm,(匹配,捕获)=>{
捕获。推送(捕获);
});
console.log(捕获)使用(
(?=
)匹配冒号,同时使用(
^
)匹配行首:

let text=`text:blah
一些文字:废话
更多的文字:废话
其他文字:废话废话;

console.log(text.match(/^.*(=:)/gm));
谢谢,我将它与String.replace()方法结合使用。我如何为四个匹配中的每一个引用第一组(冒号前的文本)?我尝试过:
text.replace(/([\w]+?):/gm,…$&…);
,但它包含逗号。如何排除逗号?抱歉,刚才看到了您的代码片段,而不是使用
capture
字段是否有另一种方法使用
$
?@Jake您指的是使用不带冒号的捕获?如果是,您希望使用
$1
操作符获取捕获:
text.replace(/([\w]+?):/gm,“…$1…”);
你的代码没有
m
标志就可以工作,因为
m
标志并不做你显然认为它做的事情。它只控制
^
$
@torazaburo的含义,哎呀,我明白它的作用,在写我最初的答案时使用了
^
,但后来注意到了这个部分答案是每行只有1个冒号,所以我删除了“^”,忘了删除
m
标志。感谢您捕捉到它。我继续并将“^”放回,因为谁知道,可能会有冒号进入字符串的地方。