繁体   English   中英

使用 RegEx 提取单词

[英]Extract words with RegEx

我是 RegEx 的新手,但将它用于我的项目会非常有用。 我想在 Javascript 中做的是:

我有这种字符串“/this/is/an/example”,我想提取该字符串的每个单词,也就是说:

"/this/is/an/example" -> this, is, an, example。 然后使用每个单词。

到目前为止,我做了:

var str = "/this/is/a/test"; 
var patt1 = /\/*/g;
var result = str.match(patt1);
document.getElementById("demo").innerHTML = result;

它返回我:/,,,,,/,,,/,,/,,,,,

我知道如果我可以通过使用搜索来识别每个“/”的位置,我知道接下来我将不得不使用 .slice 函数,但使用搜索它只会返回第一个“/”的索引,也就是说在这种情况下0.

我查不出来。

任何的想法 ?

提前致谢 !

使用split()

split() 方法通过将字符串分成子字符串来将字符串对象拆分为字符串数组,使用指定的分隔符字符串来确定每次拆分的位置。

 var str = "/this/is/a/test"; var array = str.split('/'); console.log(array);

如果您想使用正则表达式。

 var str = "/this/is/a/test"; var patt1 = /(\\w+)/g; var result = str.match(patt1) console.log(result);

好吧,我想这取决于您对“单词”的定义,有一个“单词字符”匹配可能正是您想要的:

var patt1 = /(\w+)/g;

这是正则表达式的工作示例

完整的 JS 示例:

 var str = "/this/is/a/test"; var patt1 = /(\\w+)/g; var match = str.match(patt1); var output = match.join(", "); console.log(output);

您可以使用此正则表达式: /\\b[^\\d\\W]+\\b/g ,让特定单词只需访问数组中的索引即可。 例如result[0] == this

 var str = "/this/is/a/test"; var patt1 = /\\b[^\\d\\W]+\\b/g; var result = str.match(patt1); document.getElementById("demo").innerHTML = result;
 <span id="demo"></span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM