匹配字符串中不以省略号结尾的单词
Match word in a string that does not end in ellipsis
假设我有以下字符串:
ZD:123123 ZD:213123 ZD:2e213 [ZD:213123] [ZD#221313] ZD:234...
除了ZD:234...
之外,我想对所有出现的进行模式匹配,因为我不想要任何带有省略的单词。
这个模式在JavaScript:中对我来说做得很好
/('[|'(|)ZD[:#]'w+(']|')|)/g
然而,它仍然捕获了ZD:234...
的ZD:234
部分,我绝对不希望它这样做
如何阻止regex执行此操作?
一个简单的解决方案是使用负前瞻:
/('[|'(|)ZD[:#]'w+'b(']|')|)(?!'.'.'.)/g
注意,我还添加了'b
以避免在ZD:23
上匹配。
简化一点:
/['[(]?ZD[:#]'w+'b['])]?(?!'.'.'.)/g
如果您想要匹配的括号(无[ZD:123)
):
/(?:ZD[:#]'w+|'[ZD[:#]'w+']|'(ZD[:#]'w+'))'b(?!'.'.'.)/g
剥猫皮的方法不止一种。通过使用更简单的正则表达式,以下内容将在更多浏览器中工作:
function trim(s) {
return s.replace(/^ | $/g,'').replace(/'s+/g,' ');
}
var x = 'ZD:123123 ZD:213123 ZD:2e213... [ZD:213123] [ZD#221313] ZD:234...';
alert(
trim(x.replace(/(^| )[^ ]+['.]{3}( |$)/g,' ')).split(/'s+/)
);
/* shows: ZD:123123,ZD:213123,[ZD:213123],[ZD#221313] */
它删除了以…结尾的任何空格分隔的字符"单词"。。。然后在空间上分裂。
相关文章:
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- dataTables-如何自定义分页类型以显示最后一个页码后面的省略号,
- 删除LINES开头和结尾的空白
- Angular http.get没有'我不喜欢在开头和结尾加方括号的文本文件
- 检查整数是否以0结尾
- jQuery-选择以..开头和结尾的元素..但省略了具体名称
- Regex:匹配以“AM”结尾的单词(不区分大小写比较)
- 渐弱入/渐弱音频,指向歌曲的开头和结尾
- 匹配由单个空格分隔的单词,单词的开头或结尾不能有空格
- 在特定行数后插入省略号
- 创建属性值数组,其中属性名称以特定字符串结尾
- 如何在JavaScript中的第二行用省略号打断文本
- 如何检查浏览器中是否支持文本溢出:省略号
- 从textNode获取clamp(带省略号)textContent
- 如何删除字符串开头和结尾的换行符
- jquery选择以某事开头并以某事结尾
- 在每个固定高度段落的最后一行添加省略号,并隐藏溢出 y
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- "“聪明”;HTML中的溢出:有什么方法可以放省略号“"结尾有一个链接,可以查看整个内容
- 匹配字符串中不以省略号结尾的单词