Ideally, you need to sanitise your incoming data at the point of production, rather than attempting to get Splunk to unravel its inconsistencies.
Splunk is (perfectly reasonably) interpreting and recording reason=" " as being a field consisting of one space, at index time. When called upon, later, to regurgitate the value of that field that is all it produces. The fact that your data contains multiples of the same delimiter coupled with the inconsistency means it will be very difficult to frame a regex to filter it correctly. It would help if we could see a sample of a source log, to see the "reason" field in the context of its surrounding data, and you could then provide for it in your indexing configurations.