我開始學習正則表達式,我想知道:在哪些情況下最好使用它們?在哪些情況下使用正則表達式更好?
回答
正則表達式是一種模式匹配的形式,您可以將其應用於文本內容。舉例來說,DOS通配符?和*您可以使用當您搜索文件 。這是RegExp的一個非常有限的子集。例如,如果要查找以「fn」開頭的所有文件,後跟1到4個隨機字符,並以「ht.txt」結尾,則不能使用通常的DOS通配符來完成此操作。另一方面,RegExp可以處理更復雜的模式。
正則表達式,總之,有效地
- 處理數據
- 搜索和替換字符串
- 提供擴展的字符串處理的方式。
通常,正則表達式本身可以提供字符串處理,其他功能(如內置字符串方法和屬性只能在複雜函數或循環中使用它們時纔可以)。
當您嘗試查找/替換/驗證複雜的字符串模式時。
在某些情況下,如果您需要更好的性能,您應該避免使用正則表達式來編寫代碼。一個例子是解析非常大的CSV文件。
正則表達式是用於解析文本的dsl(域特定語言)。就像xpath是一個用於遍歷xml的dsl。它實質上是一種通用語言中的迷你語言。您可以在很少量的代碼中完成相當多的工作,因爲它專門用於狹義目的。正則表達式的一個非常常見的用途是檢查字符串是否是電子郵件地址,電話號碼,ssn等...
在比較字符串(preg_match),替換子字符串(sed,preg_replace),替換字符串(sed,preg_replace),搜索文件中的字符串(grep),分割字符串(preg_split)等。
這是一個非常靈活和廣泛的模式表達式語言,它是非常有用的知道。
但是!這就像他們對撲克的評價,這很容易學,但很難掌握。
我剛碰到一個question,我認爲這對RegEx來說是完美的,請看看並自己決定。
還有一些情況下,正則表達式是>>不是< <合適(通常;總是有例外)。
- 解析HTML
- 解析XML
在上述情況下DOM解析器是幾乎總是一個更好的選擇。語法很複雜,邊緣案例太多,比如嵌套標籤。
另外一定要考慮未來的維護程序員(可能是你)。評論和/或精心挑選的方法/常量/變量名稱可能會造成一個不同的世界,特別是對於在正則表達式中不流利的開發人員而言。
正則表達式對驗證自由文本輸入的格式特別有用。當然,他們不能驗證數據的正確性,只是它的格式。而且您必須記住某些類型值的區域差異(例如電話號碼或郵政編碼)。但是對於可以將有效輸入定義爲文本模式的情況,正則表達式可以快速進行驗證。
- 1. 正則表達式 - 在某些情況下不起作用
- 2. IP正則表達式的情況下
- 3. JavaScript正則表達式的情況下
- 4. 正則表達式替換零在某些情況下
- 5. 哪些內存管理技術在哪些情況下更好?
- 6. notepad ++在這種情況下如何使用正則表達式?
- 7. 如何在這種情況下使用正則表達式?
- 8. 正則表達式在.NET更換的情況下
- 9. 在哪些情況下使用定位會比浮動更好?
- 10. string.replaceAll(正則表達式,更換)不適用於某些情況下
- 11. 正則表達式匹配的表達只有這些情況
- 12. 正則表達式用或情況
- 13. 修改Nginx正則表達式,使其僅適用於某些情況下
- 14. 正則表達式提取器中必須使用哪些正則表達式?
- 15. 正則表達式來阻止模式,除了在某些情況下
- 16. 在這種情況下正則表達式的正確使用是什麼?
- 17. 正則表達式混合情況下排除特定情況下
- 18. 在幾種情況下設置正則表達式
- 19. Python的正則表達式需要在某些情況下,只要
- 20. 使用情況下表達
- 21. 使用正則表達式在Php中檢查電話號碼的情況下
- 22. 正則表達式 - 在不使用$符號的情況下匹配字符(S)
- 23. 哪種情況下性能更好
- 24. 正則表達式不匹配所有的情況下
- 25. 正則表達式和字符的情況下
- 26. 報價標籤的正則表達式PHP - 一般情況下
- 27. 駱駝情況下正則表達式不工作
- 28. 正則表達式提取蜂巢中的以下情況?
- 29. 奇怪的情況下的PHP正則表達式
- 30. Java:意外情況下的正則表達式匹配
+1非常好的比喻! – 2009-11-07 21:32:42