Регулярное выражение: найти пробелы (табуляции / пробелы), но не новые строки
Как я могу иметь регулярное выражение, которое проверяет пробелы или вкладки, но не новые строки. Я пытался s но выяснилось, что он также тестирует для новых строк.
Я использую C# / WPF, но это не должно иметь значения.
4 ответов:
Википедия а также ссылки в связанный Perl ответ. Простое решение C#, которое учитывает эти другие символы могут быть построены с помощью вычитание класса символов
[\s-[\r\n]]или, включая решение Eiríkr Útlendi, вы получаете
[\s\u3000-[\r\n]]
Примечание: для тех, кто имеет дело с текстом CJK (китайский, японский и корейский), двухбайтовое пространство (Unicode
\u3000) составляет не входит в\sдля любой реализации я пробовал до сих пор (Perl, .NET, PCRE, Python). Вам нужно будет либо нормализовать ваши строки сначала (например, заменив все\u3000с\u0020), или вам придется использовать набор символов, который включает эту кодовую точку в дополнение к любым другим пробелам, на которые вы ориентируетесь, например[ \t\u3000].если вы используете Perl или PCRE, у вас есть возможность использовать
этот\hобозначение горизонтальные пробельные символы, который, как представляется, включает в себя однобайтовое пространство, двухбайтовое пространство и вкладку, среди прочих. Смотрите совпадают пробелы, но не новые строки (Perl) поток для более подробной информации.\hстенография не была реализована для .NET и C#, как лучше всего я смог сказать.
Comments