Pendekatan ini dapat digunakan untuk mengotomatiskan ini (solusi contoh berikut ini dalam python, meskipun jelas dapat diporting ke bahasa apapun):
Anda dapat menghapus spasi terlebih dahulu DAN menyimpan posisi karakter non spasi sehingga Anda dapat menggunakannya nanti untuk mengetahui posisi batas string yang cocok dalam string asli seperti berikut:
def regex_search_ignore_space(regex, string):
no_spaces = ''
char_positions = []
for pos, char in enumerate(string):
if re.match(r'\S', char): # upper \S matches non-whitespace chars
no_spaces += char
char_positions.append(pos)
match = re.search(regex, no_spaces)
if not match:
return match
# match.start() and match.end() are indices of start and end
# of the found string in the spaceless string
# (as we have searched in it).
start = char_positions[match.start()] # in the original string
end = char_positions[match.end()] # in the original string
matched_string = string[start:end] # see
# the match WITH spaces is returned.
return matched_string
with_spaces = 'a li on and a cat'
print(regex_search_ignore_space('lion', with_spaces))
# prints 'li on'
Jika Anda ingin melangkah lebih jauh, Anda dapat membuat objek yang cocok dan mengembalikannya, jadi penggunaan helper ini akan lebih praktis.
Dan kinerja dari fungsi ini tentunya juga dapat dioptimalkan, contoh ini hanya untuk menunjukkan jalan menuju solusi.