W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
詞邊界 ?\b
? 是一種檢查,就像 ?^
? 和 ?$
? 一樣。
當(dāng)正則表達(dá)式引擎(實(shí)現(xiàn)正則表達(dá)式搜索的程序模塊)遇到 \b
時(shí),它會(huì)檢查字符串中的位置是否是詞邊界。
有三種不同的位置可作為詞邊界:
\w
?。\w
?,另一個(gè)不是。\w
?。例如,可以在 Hello, Java!
中找到 \bJava\b
的匹配項(xiàng),其中 Java
是一個(gè)獨(dú)立的單詞,而在 Hello, JavaScript!
中則不行。
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
在字符串 Hello, Java!
中,以下位置對(duì)應(yīng)于 \b
:
因此,它與模式 \bHello\b
相匹配,因?yàn)椋?
\b
?。Hello
?。\b
? 再次匹配,因?yàn)槲覀冊(cè)?nbsp;?o
? 和逗號(hào)之間。所以模式 \bHello\b
會(huì)匹配,但 \bHell\b
不會(huì)匹配(因?yàn)樵?nbsp;l
之后沒(méi)有單詞邊界),Java!\b
也不會(huì)匹配(因?yàn)楦袊@號(hào)不是單詞字符 \w
,所以其后沒(méi)有詞邊界)。
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, Java!".match(/\bHell\b/) ); // null(無(wú)匹配項(xiàng))
alert( "Hello, Java!".match(/\bJava!\b/) ); // null(無(wú)匹配項(xiàng))
\b
既可以用于單詞,也可以用于數(shù)字。
例如,模式 \b\d\d\b
查找獨(dú)立的兩位數(shù)。換句話說(shuō),它查找的是兩位數(shù),其周?chē)桥c \w
不同的字符,例如空格或標(biāo)點(diǎn)符號(hào)(或文本開(kāi)頭/結(jié)尾)。
alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
詞邊界 ?
\b
? 不適用于非拉丁字母詞邊界測(cè)試
\b
檢查該位置的一側(cè)是否匹配\w
,而另一側(cè)則不匹配 “\w
”。
但是,
\w
表示拉丁字母a-z
(或數(shù)字或下劃線),所以此檢查不適用于其他字符,如西里爾字母(cyrillic letters)或象形文字(hieroglyphs)。
時(shí)間的格式是:小時(shí):分鐘
。小時(shí)和分鐘都是兩位數(shù),例如 09:00
。
編寫(xiě)正則表達(dá)式在字符串 Breakfast at 09:00 in the room 123:456.
中查找時(shí)間。
P.S. 在這個(gè)任務(wù)里沒(méi)有必要校驗(yàn)時(shí)間的正確性,所以 25:99
也可算做有效的結(jié)果。
P.P.S. 正則表達(dá)式不應(yīng)該匹配 123:456
。
答案是:\b\d\d:\d\d\b
。
alert( "Breakfast at 09:00 in the room 123:456.".match( /\b\d\d:\d\d\b/ ) ); // 09:00
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: