正则表达式反斜杠 - GNU Emacs 手册 http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Backslash.html说\<
匹配单词的开头,\>
匹配单词末尾,并且\b
匹配单词边界。\b
就像其他非 Emacs 正则表达式一样。但似乎\<
and \>
是 Emacs 正则表达式特有的。是否有这样的情况\<
and \>
需要而不是\b
?例如,\bword\b
将匹配相同\<word\>
会,唯一的区别是后者更具可读性。
如果您假设它们的行为相同,您可能会得到意想不到的结果。
\b 能做什么?
答案是\<
and\>
are explicit……一句话就到此结束!并且仅此而已!
\b
is general.... 单词的任一端都会匹配...
GNU 运算符 *字运算符 http://www.cs.utah.edu/dept/old/texinfo/regex/regex.html#SEC26
line="cat dog sky"
echo "$line" |sed -n "s/\(.*\)\b\(.*\)/# |\1|\2|/p"
echo "$line" |sed -n "s/\(.*\)\>\(.*\)/# |\1|\2|/p"
echo "$line" |sed -n "s/\(.*\)\<\(.*\)/# |\1|\2|/p"
echo
line="cat dog sky"
echo "$line" |sed -n "s/\(.*\)\b\(.*\)/# |\1|\2|/p"
echo "$line" |sed -n "s/\(.*\)\>\(.*\)/# |\1|\2|/p"
echo "$line" |sed -n "s/\(.*\)\<\(.*\)/# |\1|\2|/p"
echo
line="cat dog sky "
echo "$line" |sed -n "s/\(.*\)\b\(.*\)/# |\1|\2|/p"
echo "$line" |sed -n "s/\(.*\)\>\(.*\)/# |\1|\2|/p"
echo "$line" |sed -n "s/\(.*\)\<\(.*\)/# |\1|\2|/p"
echo
output
# |cat dog |sky|
# |cat dog| sky|
# |cat dog |sky|
# |cat dog |sky|
# |cat dog| sky|
# |cat dog |sky|
# |cat dog sky| |
# |cat dog sky| |
# |cat dog |sky |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)