วิธีนี้สามารถใช้เพื่อทำให้สิ่งนี้เป็นไปโดยอัตโนมัติ (โซลูชันที่เป็นแบบอย่างต่อไปนี้อยู่ใน python แม้ว่าจะเห็นได้ชัดว่าสามารถพอร์ตไปยังภาษาใดก็ได้):
คุณสามารถตัดช่องว่างไว้ล่วงหน้าและบันทึกตำแหน่งของอักขระที่ไม่ใช่ช่องว่างเพื่อให้คุณสามารถใช้ในภายหลังเพื่อค้นหาตำแหน่งขอบเขตสตริงที่ตรงกันในสตริงเดิมดังต่อไปนี้:
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'
หากคุณต้องการไปไกลกว่านั้นคุณสามารถสร้างวัตถุจับคู่และส่งคืนแทนดังนั้นการใช้ตัวช่วยนี้จะสะดวกกว่า
และแน่นอนว่าประสิทธิภาพของฟังก์ชั่นนี้ก็สามารถปรับให้เหมาะสมได้เช่นกันตัวอย่างนี้เป็นเพียงการแสดงเส้นทางไปยังโซลูชัน