我在ignore.txt中有一長串正則表達式,而在include.txt文件中有長列表。使用PHP對sample.html文件中包含的數據應用這些方法最快的方法是什麼?這樣可以捕獲在include中找到的任何匹配,但是那麼忽略ignore.txt中匹配的任何內容?在PHP中應用正則表達式列表
回答
如果您include.txt和ignore.txt文件設置,使他們只有正則表達式,並有每行一個表達式,你可以使用PHP的file()
函數。這會將文件加載到數組中,其中每一行都是數組中的一個元素。您可以使用file_get_contents()
以字符串形式加載sample.html文件。
preg_match()
或preg_match_all()
做不採取實際數組作爲輸入,像preg_replace()
一樣。您將需要使用諸如foreach
之類的東西來遍歷您的表達式數組,並將單個調用應用於其中一個匹配函數以獲得結果。
我認爲preg_match_all()
將最適合您的需求,因爲它聽起來像是想將所有匹配拉出整個文件,而不僅僅是第一個。一旦你有完整的匹配列表,那麼你可以用類似的方式使用ignore.txt中的數據來應用你的過濾器。
這就是我目前正在做的事情,但是想知道是否可能有一種我沒有想到的聰明方式,而不是循環遍歷每個文件中的每一行。謝謝 – Poe 2011-05-19 05:00:50
最快的方式是讓殼做的工作
$result = `cat sample.html | egrep -f include.txt | egrep -vf ignore.txt`;
這個答案有兩個問題:1.你不能真的假定這個人沒有使用Windows。他問了一個PHP解決方案。 – 2011-05-17 13:43:06
- 1. PHP郵件列表正則表達式
- 2. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
- 3. 用PHP正則表達式
- 4. 正則表達式在PHP
- 5. 正則表達式:在PHP
- 6. 正則表達式在PHP
- 7. 正則表達式在PHP
- 8. 正則表達式在PHP
- 9. 正則表達式在PHP
- 10. 陣列中的正則表達式php
- 11. SED正則表達式用PHP正則表達式不兼容
- 12. 在php中使用正則表達式
- 13. 在PHP中使用正則表達式
- 14. PHP +正則表達式表達式
- 15. 正則表達式「列表」
- 16. 在bash中應用正則表達式
- 17. 形式的Java正則表達式PHP正則表達式
- 18. 正則表達式(正則表達式)
- 19. 正則表達式(正則表達式)
- 20. 正則表達式(正則表達式)
- 21. 正則表達式表達PHP
- 22. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 23. 將JavaScript正則表達式轉換爲PHP正則表達式?
- 24. 轉換PHP正則表達式C#正則表達式
- 25. Javascript lastIndex正則表達式屬性到PHP正則表達式
- 26. 轉換PHP正則表達式的JavaScript正則表達式
- 27. 將Java正則表達式轉換爲PHP正則表達式
- 28. Python正則表達式vs PHP正則表達式
- 29. PHP + JAVASCRIPT GET正則表達式的URL正則表達式
- 30. 正則表達式php(正則表達式)
preg_match和preg_replace接受數組作爲參數,以便您可以通過它們運行表達式列表。如何將文本文件轉換爲數組取決於您的txt文件的格式。 – dqhendricks 2011-05-16 02:01:24