簡體   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