Javascript Regex:在每行的单个字符之前获取匹配项
我想使用JavaScript对以下文本进行一些正则表达式匹配: 文字:废话 一些文字:废话 更多的文字:废话 其他文字:废话 我想匹配每个冒号前面的所有单词:Javascript Regex:在每行的单个字符之前获取匹配项,javascript,regex,Javascript,Regex,我想使用JavaScript对以下文本进行一些正则表达式匹配: 文字:废话 一些文字:废话 更多的文字:废话 其他文字:废话 我想匹配每个冒号前面的所有单词:文本,一些文本,更多文本,其他文本。到目前为止,我只能用以下表达式匹配第一个匹配项:/^(.*?):/g(第1组) 如何匹配所有事件?(每行上正好有一个冒号) 根据我所读的内容,我认为我需要使用[\s\s],但我不确定如何使用。您可以查找第一个字符:,但使用m标志使匹配在“多行”基础上运行: /^([\w ]+?):/gm 查看下面的可视
文本
,一些文本
,更多文本
,其他文本
。到目前为止,我只能用以下表达式匹配第一个匹配项:/^(.*?):/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
标志。感谢您捕捉到它。我继续并将“^”放回,因为谁知道,可能会有冒号进入字符串的地方。