基于Regex直到但不包括,我试图匹配所有字符直到字边界.
例如 - apple在以下字符串中匹配:
apple<
Run Code Online (Sandbox Code Playgroud)
我正在使用:
像这样:
/a[^\b]+/
Run Code Online (Sandbox Code Playgroud)
哪个应该查找"a",然后为任何不是单词边界的字符抓取一个或多个匹配项.所以我希望它在<此之前停止
var input = [ "apple<", "apple/" ];
var myRegex = /a[^\b]+/;
for (var i = 0; i < input.length; i++) {
console.log(myRegex.exec(input[i]));
}Run Code Online (Sandbox Code Playgroud)
我试过的其他正则表达式字符串:
我可以使用否定的单词边界或带有常规单词边界的否定集合:
/a[\B]+//a[^\b]+/我可以指定几个可能的单词结束字符并在否定集中使用它们:
/a[^|"<>\-\\\/;:,.]+/我也可以寻找一个积极的设置,并限制它返回常规字母:
/a[\w]+//a[a-zA-Z]+/但是如果可能的话,我想知道如何为字边界做这件事.
Word boundary(\b)不是字符,而是一系列字母和任何非字母字符之间的空字符串.此外,由于JavaScript中仍然缺少Unicode支持,"字母"仅表示ASCII字母.
因此,你
\b除非您的数据是某种不可能包含Unicode的计算机语言,否则通常不应使用\b(空字符串时间10仍然是一个空字符串)\b(它不是一个字符集,所以它没有补充)\b在字符集中(在方括号中),因为它不是字符或字符集由于\b实际上不会在匹配中添加任何字符,因此您可以安全地将其附加到正则表达式:
/.+?\b/
Run Code Online (Sandbox Code Playgroud)
将匹配所有字符直到第一个单词边界.它实际上是以下的超集:
/\w+/
Run Code Online (Sandbox Code Playgroud)
这可能是你想要的,因为你只对单词感兴趣,而不是介于两者之间的东西.
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |