[英]Finding exact string in python
我正在嘗試使用 python 讀取文件,並使用帶有“設備 1”字符串的單獨行。 用戶將給出關於他想找到什么設備 1、設備 2 等的輸入。 當我嘗試搜索具有“設備 1”的行時,它會找到所有其他具有“設備 11”、“設備 12”直到“設備 19”的行。 我正在嘗試使用正則表達式來做到這一點。 我還嘗試使用 for 循環和 in 運算符,例如; 對於字符串中的設備 1 .. 但它不起作用。
有沒有其他人遇到過同樣的問題,有沒有辦法匹配確切的字符串設備 1 而不是設備 11。
更具體地說,我正在嘗試做這樣的事情:
def device_status(line_num, dev_num):
device_num = str(dev_num)
device = 'Device ' + device_num
f = open(filename, 'r')
lines = f.readlines()
for string in lines:
if line_num in string:
if re.search(device, string):
print(string)
else:
continue
我必須收到帶有字符串“設備”的 append 設備號。 當我在 re.search 中傳遞設備時,我無法以原始字符串格式使用它,就像我這樣做一樣,它沒有被正確解釋。 因此,我也無法使用任何單詞邊界。
在這種情況下我應該怎么做?
我不明白為什么你不能使用單詞邊界,但這是一個帶有負前瞻( ?!
)的解決方案,它排除了你當前正在尋找的設備號之后的數字( \d
):
device = 'Device ' + device_num
pattern = device + "(?!\d)"
嘗試通過一些示例為您提供:
print(re.search(pattern, "Device 1 blabla"))
print(re.search(pattern, "Device 12 blabla"))
print(re.search(pattern, "Device 19blabla"))
# outputs
# <re.Match object; span=(0, 8), match='Device 1'>
# None
# None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.