Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex在“中仅查找冒号”;asdf:adsf“;但不是",;asdf:adsf“;_Javascript_Regex - Fatal编程技术网

Javascript Regex在“中仅查找冒号”;asdf:adsf“;但不是",;asdf:adsf“;

Javascript Regex在“中仅查找冒号”;asdf:adsf“;但不是",;asdf:adsf“;,javascript,regex,Javascript,Regex,我试图使用regex只捕获像asdf:adsf这样的东西中的冒号,它也可能看起来像a:b,asdf:b,b:asdf,123:b,2:1,等等。但是,它不应该匹配asdf:adsf,a:b,asdf:b,,123:b,2:1 到目前为止,我已经尝试了一系列不同的正则表达式,最接近的是: \x20*:\x20* // wrong because this captures all whitespace 试试这个。抓取捕获或组。参见演示 这将解决问题 我的另一个答案被删除了,之前发布了正则表达式

我试图使用regex只捕获像
asdf:adsf
这样的东西中的冒号,它也可能看起来像
a:b
asdf:b
b:asdf
123:b
2:1
,等等。但是,它不应该匹配
asdf:adsf
a:b
asdf:b
123:b
2:1

到目前为止,我已经尝试了一系列不同的正则表达式,最接近的是:

\x20*:\x20* // wrong because this captures all whitespace
试试这个。抓取捕获或组。参见演示

这将解决问题


我的另一个答案被删除了,之前发布了正则表达式。

我很抱歉@vks,但我没有意识到javascript正则表达式与php正则表达式不同……这是针对JS的,所以我得到了一个错误。@maudulus您必须抓取捕获或组。不,它是匹配它们,但不是抓取它们。在右边的对话框中看到抓取的匹配,其中有“匹配1”、“匹配2”、“匹配3”。我不明白,为什么不
/(:)/
?@thomas对于我正在做的事情来说,它太宽了……除了“asdf:asdf”之外,它还会匹配很多其他实例,请参见
\S(:)(?=\S)
var re = /\S(:)(?=\S)/gm;
var str = 'a:b\nasas:b\na:sadasd\na: sdffds\na :asfsd\na : dsfdf';
var m;

while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
\w+(?=\S):(?=\S)\w+