我需要在Python 類似的grep我已經做了研究,發現re模塊是合適的 我需要尋找變量特定字符串grep的變量
Q
grep的變量
3
A
回答
4
要將變量中搜索特定字符串,你可以用in
:
>>> 'foo' in 'foobar'
True
>>> s = 'foobar'
>>> 'foo' in s
True
>>> 'baz' in s
False
1
使用re.findall將是最簡單的方法。你可以搜索只是一個字符串,如果這就是你想要的(儘管你的目的會更好地服務於字符串in
運算符,你需要轉義正則表達式字符),否則你會傳遞給grep
(雖然我不知道兩者之間的語法差異,但我確定它們之間存在差異)。
>>> re.findall("x", "xyz")
['x']
>>> re.findall("b.d", "abcde")
['bcd']
>>> re.findall("a?ba?c", "abacbc")
['abac', 'bc']
1
這聽起來像你真正想要的是一個方法,可以讓你輕鬆地看到一個特定子是打印一個大子的能力。有幾種方法可以解決這個問題。
def grep(large_string, substring):
for line, i in enumerate(large_string.split('\n')):
if substring in line:
print("{}: {}".format(i, line))
這將打印只有你的子字符串的行。但是,你會失去一堆上下文。如果您需要真正的grep,請將if substring in line
替換爲使用re
模塊進行正則表達式匹配的內容。
def highlight(large_string, substring):
from colorama import Fore
text_in_between = large_string.split(substring)
highlighted_substring = "{}{}{}".format(Fore.RED, substring, Fore.RESET)
print(highlighted_substring.join(text_in_between))
這將打印整個大字符串,但與您正在尋找紅色的子字符串。請注意,您需要pip install colorama
才能運作。你當然可以結合這兩種方法。
相關問題
- 1. Perl中grep變量
- 2. 使用grep兩個變量
- 3. Grep變量模式匹配
- 4. 定位+ grep的變量在bash功能
- 5. grep 2變量與「:」之間的
- 6. for循環中的grep變量
- 7. getJson grep中的變量作用域
- 8. 包含變量的表達式grep
- 9. 通過變量衝突的grep&wget
- 10. 在csh中的grep和變量賦值
- 11. Perl:來自變量的grep唯一值
- 12. 來自TCL變量的grep字符串
- 13. 變量傳遞給函數的grep
- 14. 將變量傳遞給shell中的grep
- 15. GREP:在正則表達式變量
- 16. 如何在bash中grep多個變量
- 17. 如何在bash中使用變量grep
- 18. 將變量傳遞給grep命令
- 19. 在grep中使用Shell變量
- 20. 變量從bash'如果echo grep'
- 21. 將塊變量傳遞給grep?
- 22. Bash grep變量作爲表達式
- 23. 使用grep解析多行變量
- 24. 在shell變量中保留grep輸出
- 25. bash變量替換grep默認行爲
- 26. Makefile變量未設置從grep輸出
- 27. 向量中的Grep(R)
- 28. 用於grep的變量中的控制字符
- 29. 有變量的grep有自動轉義的方法嗎?
- 30. 對包含帶有製表符的字符串的變量grep
很高興知道。你碰巧對此有疑問嗎? – 2011-02-15 00:04:28