我需要在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. for循環中的grep變量
- 3. 在csh中的grep和變量賦值
- 4. 通過變量衝突的grep&wget
- 5. 變量傳遞給函數的grep
- 6. Makefile變量未設置從grep輸出
- 7. Bash grep變量作爲表達式
- 8. 對包含帶有製表符的字符串的變量grep
- 9. 用於grep的變量中的控制字符
- 10. grep的R中具有多個數值或定義的變量
- 11. 將grep&cut的結果放入一個變量中bash腳本
- 12. bash腳本分配grep的計數變量
- 13. 2個變量的正則表達式grep解析
- 14. grep - 將字符串的一部分放入變量
- 15. grep的結果變量和執行測試
- 16. 剿grep的輸出,但捕捉它在變量
- 17. Bash腳本從多線程json的grep變量?
- 18. 的grep-ING變量對一個文件 - 執行時間
- 19. 如何將grep輸出存儲到循環內的變量中?
- 20. 在grep中使用的Linux終端命令行變量
- 21. 如何在groovy中使用grep中的變量?
- 22. grep的特定值,並將其分配給一個變量
- 23. 的grep一個字符串變量和正則表達式
- 24. 如何在變量中存儲來自grep輸出的值
- 25. 從bash腳本中的grep輸出展開環境變量
- 26. 使用變量與grep,以及關於這個的IF語句
- 27. 如何grep一個包含變量的模式?
- 28. grep的qstat命令與變量沒有返回
- 29. UNIX grep命令(grep的-v grep的)
- 30. grep/regex做迭代/增量
很高興知道。你碰巧對此有疑問嗎? – 2011-02-15 00:04:28