Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 如何在正则表达式B使用时排除单词中间的非单词字符_Javascript_Regex - Fatal编程技术网

Javascript 如何在正则表达式B使用时排除单词中间的非单词字符

Javascript 如何在正则表达式B使用时排除单词中间的非单词字符,javascript,regex,Javascript,Regex,对于像“abc'mda li xtl isdf sdf”这样的字符串,如果我使用正则表达式/\b\w/g,它会匹配'm和-x,这也是因为'和-是非单词字符。我只想要每个新词的第一个字符。我正在使用一个变通方法regex/^\w |\s\w/g,但不确定这是否是最好的选择。请帮忙 (?:^|\s)(\w) 您可以使用它并抓取组。请参阅演示 您应该使用非捕获组:/(?:\b)\w/g 以下是一个很好的网站,可以扩展您对regex的了解: var s=“abc'md a li xtl isdf s

对于像
“abc'mda li xtl isdf sdf”
这样的字符串,如果我使用正则表达式
/\b\w/g
,它会匹配
'm
-x
,这也是因为
'
-
是非单词字符。我只想要每个新词的第一个字符。我正在使用一个变通方法regex
/^\w |\s\w/g
,但不确定这是否是最好的选择。请帮忙

(?:^|\s)(\w)
您可以使用它并抓取
。请参阅演示


您应该使用非捕获组:
/(?:\b)\w/g

以下是一个很好的网站,可以扩展您对regex的了解:

var s=“abc'md a li xtl isdf sdf”;
文件。书写;
文件。写(“
”);
文件。写入(s.match(/(?:\b)\w/g,“\1”)您还可以使用以下正则表达式:

([A-Za-z]{1})\S*

啊,收缩和连字符问题。可能最好使用这些显式的“word”字符,并避免使用\w(和\b)的regexp定义:


您的解决方案仍然提供了我想要避免的输出。输出是a,m,a,l,x,i,s,而我需要a,a,l,i,slook,因为
没有,它在那里工作:你必须输入!还有。更正,对不起,你需要JS,我有PCRE,所以是的。
/(?<![-'a-zA-Z0-9])[a-zA-Z]/g
/(?:^|[^-'a-zA-Z0-9])([a-zA-Z])/g