与字边界相比,正则表达式 (\B) 中的非字边界是什么?
与字边界相比,正则表达式 (\B) 中的非字边界是什么?
What are non-word boundary in regex (\B), compared to word-boundary?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
与字边界相比,正则表达式 (\B) 中的非字边界是什么?
What are non-word boundary in regex (\B), compared to word-boundary?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
单词边界 (
\b
) 是零宽度匹配,可以匹配:\w
) 和非单词字符 (\W
) 或在 Javascript 中,
\w
的定义是[A-Za-z0-9_]
,\W
是其他任何内容。\b
的否定版本,写作\B
,是一个零宽度匹配,而上面的内容不成立。因此它可以匹配:例如,如果字符串是
"Hello, world!"
则\b
匹配以下位置:\B
匹配\b
匹配 <代码>\b 不匹配:A word boundary (
\b
) is a zero width match that can match:\w
) and a non-word character (\W
) orIn Javascript the definition of
\w
is[A-Za-z0-9_]
and\W
is anything else.The negated version of
\b
, written\B
, is a zero width match where the above does not hold. Therefore it can match:For example if the string is
"Hello, world!"
then\b
matches in the following places:And
\B
matches those places where\b
doesn't match:non-word-boundary
的基本目的是创建一个正则表达式,它表示:如果我们位于
word char
的开头/结尾(\w
=[a-zA-Z0-9_]
) 确保上一个/下一个字符也是一个单词字符
,例如:
“a\B.”
~“a\w”
:"ab"
、"a4"
、"a_"
,...但不是"a "
,"a."
如果我们位于
非单词字符
的开头/结尾 (\W
=[^a-zA-Z0-9_]
) 确保上一个/下一个字符也是一个非单词字符
,例如:
“-\B.”
~“-\W”
:"-."
、"- "
、"--"
,...但不是"-a"
,"-1"
对于
word-boundary
它是类似的,但不是确保相邻字符属于同一类(单词字符
/非单词汽车
),它们需要有所不同,因此名称为单词边界
。The basic purpose of
non-word-boundary
is to created a regex that says:if we are at the beginning/end of a
word char
(\w
=[a-zA-Z0-9_]
) make sure the previous/next character is also aword char
,e.g.:
"a\B."
~"a\w"
:"ab"
,"a4"
,"a_"
, ... but not"a "
,"a."
if we are at the beginning/end of a
non-word char
(\W
=[^a-zA-Z0-9_]
) make sure the previous/next character is also anon-word char
,e.g.:
"-\B."
~"-\W"
:"-."
,"- "
,"--"
, ... but not"-a"
,"-1"
For
word-boundary
it's similar but instead of making sure that the adjacent characters are of the same class (word char
/non-word car
) they need to differ, hence the nameword's boundary
.