[\b]
顯然匹配退格字符。我無法理解字符串如何包含退格字符。 有人可以給我一個這將如何使用的具體例子嗎?非常感謝。[ b] backspace regex有什麼用?
回答
當其他人是對的,一般(即\b
是一個字的邊界),\b
不意味着退格內的字符類:
[\b]
這的確會匹配退格字符。它只是一個可以出現在文本中的ASCII控制字符(ASCII碼8或10進制)。我想這主要是用於傳統的原因,添加變音標記(例如,你可以做a
,退格,´
,得到á
)。今天,這些已經大部分被Unicode組合標記取代。
如何最終包含退格符的字符串看取決於呈現它的軟件。如果退格之後是新的其他字符,控制檯可能仍然會將光標移回並覆蓋那裏的內容。看到這一點,火了一個交互式腳本控制檯(如Node.js的,如果你想嘗試在JavaScript),並運行
> console.log("abc\b\bdef")
adef
需要注意的是,有你省略def
,你只是得到abc
,因爲退格本身並沒有消除任何東西。它只將光標移回。
另一方面,您的瀏覽器可能會忽略它在輸入字段中。例如,檢查一個Unicode converter,在左下角輸入JavaScript輸入abc\b\bdef
,點擊「轉換」,「字符」輸出將不會有bc
刪除。
順便說一句\b
是字符類中的退格並不是JavaScript所獨有的,但是在大多數正則表達式中都是這樣解釋的。
延伸閱讀:
查看此答案的其他詳細信息:http://stackoverflow.com/a/6792867/758446 – BlackVegetable
@BlackVegetable謝謝,我一直在尋找這樣的東西,但無法快速找到任何好消息 –
現在,後續挑戰將構建一個奇怪的(現代)邊緣案例,你實際上*想*捕捉這樣一個角色! – BlackVegetable
在正則表達式的上下文中(在字符類之外)\b
並不意味着退格;它意味着'文字邊界'。 There are lot's of uses for it。例如,
/\bword\b/
將匹配some word
但不someword
。
由於m.butter指出你可以用它來搭配一個退格符,如果它是一個字符類內進行。例如:
var input = "this is a \btest.";
/[\b]/.test(input); // true
真實的例子:我們通過\ b客戶端之間(通過託管服務器)使用我們自己的協議允許用戶退回已發送的文本。在一種類型的客戶端(這個是基於web瀏覽器的,但其他的不是),我檢查backspace-key hit(e.which == 8 // Ref。https://api.jquery.com/keydown/)併發送'\ b';其他客戶端處理這個(可能自動)。當我的Web客戶端收到\ b時,我的代碼必須正確處理它。
- 1. \ b,\ f,\ n,\ r做什麼?有什麼區別?
- 2. Vim中b和B有什麼區別?
- 3. A == B對B == A,有什麼區別
- 4. $ b和$$ b有什麼區別?
- 5. RegEx(a + b)^ n(c + d)^ m匹配的是什麼?
- 6. 與「%A%B%」的SQL LIKE子句等效的Java RegEx是什麼?
- 7. 爲什麼BACKSPACE(\ b)不能像文件那樣按預期工作?
- 8. 爲什麼b比b快?
- 9. 有什麼區別git fetch B + git merge B vs git merge origin/B
- 10. VIM - FuzzyFinder在Backspace上關閉,爲什麼?
- 11. 什麼是Ctrl + Backspace的終端鍵碼
- 12. 有沒有人發現REGEX「\ b」在MYSQL中不起作用?
- 13. PHP preg_match - 此RegEx有什麼問題?
- 14. 我的ActionScript Regex有什麼問題?
- 15. 我的Redirect 301 Regex有什麼問題?
- 16. BeautifulSoup + HTML + Regex = ...什麼都沒有?
- 17. 這個RegEx有什麼問題?
- 18. 我的JavaScript regex/regex語法有什麼問題?
- 19. 爲什麼emacs沒有檢測到C- <backspace>組合?
- 20. Tcl [list a b c] vs {a b c}有什麼區別,在什麼情況下?
- 21. 什麼`\ X1B(B`做
- 22. 什麼是B *樹?
- 23. Android Edittext中的「backspace」字符'\ b'不起作用?
- 24. Regex。*是什麼?意思?
- 25. regex [* \ f] +是什麼意思?
- 26. RegEx語句在做什麼?
- 27. RegEx ----什麼意思是「?!:」?
- 28. python中b''和''有什麼區別?
- 29. 'echo'a \\ b'|有什麼問題grep的「\\」」
- 30. 有什麼問題[A B] =蘭迪()
當然,一個字符串可以包含一個退格「字符」 - 在這裏用引號引起來,因爲_control code_會更加精確。但它是ASCII的一部分(因此也是UTF-8),所以當然它可以發生在使用這些編碼的地方。 – CBroe
這個字符串在什麼環境中被使用將會導致它 - 這是另一個問題。放入HTML或從JS提醒/記錄它很可能根本沒有可見的效果 - 但例如一個真正舊的(針)打印機,該字符串被髮送到可以恢復一個字符位置,並打印下面的字符在其上... – CBroe
是的,已經看到了你的答案。感謝您的澄清。 – CBroe