Using Regexp to extract complete addresses
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I'm trying to extract the addresses from a large pdf. Here is a screenshot of the pdf:

Here is the code I'm using:
str = extractFileText("document_name.pdf");
expression = '\d{1,8}\s\w*\s\w*\n';
startIndex = regexp(str,expression,'match');
However, this code only extracts addresses that begin with 1-8 digits, then have a space, then some letters, then a space, then more letters, then a new line.
As you can see in the screenshot, not all addresses are in this format. Some start with numbers, a space, then one word, then a new line, some have numbers then several words, then a new line, etc. How can I extract every full address?
0 comentarios
Respuestas (1)
Abhinav Aravindan
el 24 de Feb. de 2025
From the screenshot provided, it seems that the addresses in your PDF start with a 4-digit number, followed by one or more words. Assuming each column in the screenshot is a page of the PDF, to extract addresses matching this pattern, you may iterate through each line of the PDF text and use the regular expression as mentioned in the code snippet below:
% PDF content
fileContent = extractFileText("document_name.pdf");
% Split the content into lines
lines = strsplit(fileContent, '\n');
addresses = [];
addressPattern = '\d{4}\s[A-Z\s]+';
% Extract addresses
for i = 1:length(lines)
line = strtrim(lines{i});
matches = regexp(line, addressPattern, 'match');
if ~isempty(matches)
addresses = [addresses; matches];
end
end
disp('Extracted Addresses:');
disp(addresses);
You may refer to the below documentation on “regexp” for more detail:
0 comentarios
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!