Чтобы лучше очистить мой форум сообщение Corpus, я хотел бы, чтобы удалить начальные пробелы перед тем пунктуации и добавьте один после при необходимости, с помощью двух регулярных выражений. Последнее не было проблемой ((?<=[.,!?()])(?!)
), но у меня есть некоторые проблемы с первым, по крайней мере.Regex ведущее пространство/добавить отставая пробел перед/пунктуации
Я использовал это выражение: \s([?.!,;:"](?:\s|$))
Но это далеко не достаточно гибко:
- Это соответствует, даже если уже есть пространство (или более) до знака препинания
- Безразлично» t, если после символа пунктуации нет пробела
- Он не соответствует любому символу пунктуации (но я думаю, что могу использовать
[:punct:]
для этого, в конце дня)
Наконец, и соответствует десятичной точки (в то время как они не должны)
Как я могу в конечном счете переписать выражение для удовлетворения моих потребностей?
Пример Строки и ожидаемый выход
This is the end .Hello world! # This is the end. Hello world! (remove the leading, add the trailing)
This is the end, Hello world! # This is the end, Hello world! (ok!)
This is the end . Hello world! # This is the end. Hello world! (remove the leading, ok the trailing)
This is a .15mm tube # This is a .15 mm tube (ok since it's a decimal point)
примера будет лучше. –
Вы пытаетесь сопоставить строки или удалить пробелы? –
@AvinashRaj Я добавил несколько примеров и лучшее разъяснение (обоих) моих потребностей :) –