Проблема в вашем регулярном выражении - это начальный якорь ^
, который ожидает, что ваш соответствующий текст A0425
должен начинаться с самого начала строки, и это действительно не тот случай, когда у вас есть Y
и пробел перед ним. Так что просто удалите ^
из вашего регулярного выражения, и тогда вы получите все ожидаемые строки. Кроме того, вы можете изменить четыре из этого [0-9]
, чтобы записать как [0-9]{4}
, и ваше сокращенное регулярное выражение становится,
A[0-9]{4}
Regex Demo
Вам нужно изменить свой текущий код следующим образом,
import pytesseract
from PIL import Image
import re
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-
OCR\tesseract.exe"
value = Image.open("ocr.JPG")
text = pytesseract.image_to_string(value)
print(re.findall(r'A[0-9]{4}', text))
Это должно печатать все ваши совпадения без необходимости повторения по отдельности в строки,
['A0427', 'A0425', 'A0398']