仅使用第一个单词匹配复合单词的正则表达式
Regular Expression to match compound words using only the first word
我试图在JS中创建一个正则表达式,它将匹配box
的出现并返回完整的复合词
使用字符串:
the box which is contained within a box-wrap has a box-button
我想要得到:
[box, box-wrap, box-button]
是否可能只使用字符串box
来匹配这些单词?
这是我到目前为止所尝试的,但它没有返回我想要的结果。
http://jsfiddle.net/w860xdme/var str ='the box which is contained within a box-wrap has a box-button';
var regex = new RegExp('(['w-]*box['w-]*)', 'g');
document.getElementById('output').innerHTML=str.match(regex);
试试:
(['w-]*box['w-]*)
Regex live here.
由注释请求,下面是javascript中的一个工作示例:
function my_search(word, sentence) {
var pattern = new RegExp("([''w-]*" + word + "[''w-]*)", "gi");
sentence.replace(pattern, function(match) {
document.write(match + "<br>"); // here you can do what do you want
return match;
});
};
var phrase = "the box which is contained within a box-wrap " +
"has a box-button. it is inbox...";
my_search("box", phrase);
希望能有所帮助。
我把这个写在这里:
(box['w-]*)+
你可以在JS中使用这个正则表达式:
var w = "box"
var re = new RegExp("''b" + w + "''S*");
RegEx演示
这应该可以工作,注意'W'是大写的。
http://www.w3schools.com/jsref/jsref_obj_regexp.asp' Wbox ' W
看起来您想要使用正则表达式匹配。Match是一个字符串方法,它接受一个正则表达式作为参数,并返回一个包含匹配项的数组。
var str = "your string that contains all of the words you're looking for";
var regex = /you('S)*(?='s)/g;
var returnedArray = str.match(regex);
//console.log(returnedArray) returns ['you', 'you''re']
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 拆分单词jquery
- 如何让程序检查所选单词中是否有按键
- 如何在悬停时流畅地更改单词
- EmberJS中支持单字母单词模型
- 字母计数:返回重复字母数最多的第一个单词
- 如何在Javascript中从字符串中提取某些单词
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 在javascript中查找单词
- 使用jQuery检查提交时添加到句子中的单词
- 如何在PHP中获取特定的字符串单词
- 停止较大单词的重叠
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 用于匹配不带字符的单词的正则表达式
- 从输入值中删除最后一个单词
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 如何将单词(包括单词)与连字符匹配
- 仅使用第一个单词匹配复合单词的正则表达式