Я пытаюсь выполнить замену, где мне нужно найти пробелы, за которыми следует число или буква, с акцентами или без них, чтобы заменить их подчеркиванием. В настоящее время у меня есть это (обратите внимание на пробел в начале):

 \b(?=[a-zA-Z0-9àéèêëîïôöûü])

В строке test string école test замена выглядит так:

test_string école_test

Думаю, проблема у вас, но на всякий случай ожидаемый результат таков:

test_string_école_test

Самое странное, что если я просто ищу [a-zA-Z0-9àéèêëîïôöûü], он соответствует каждой отдельной букве, так что мой RegEx кажется нормальным ...

Это ошибка или я что-то упускаю?

0
PLPeeters 23 Май 2013 в 19:03
1
Попробуйте отбросить \b - это не важно для вашего запроса (вы уже соответствуете пробелу), а поддержка юникода в регулярных выражениях неоднородна. Возможно, обнаружение границ - только ASCII.
 – 
FrankieTheKneeMan
23 Май 2013 в 19:07
Ах да ... Большое спасибо! Это потому, что я изначально пытался сделать отрицательный просмотр (на этот раз сопоставление символов), но это не сработало, поэтому я попробовал наоборот.
 – 
PLPeeters
23 Май 2013 в 19:21
Кей. Поскольку это сработало, я отправлю его в качестве ответа.
 – 
FrankieTheKneeMan
23 Май 2013 в 19:25

1 ответ

Лучший ответ

Отбросьте \b - это не важно для вашего запроса (вы уже соответствуете пробелу), а поддержка юникода в регулярных выражениях неоднородна. Обнаружение границ - ASCII только в Sublime Text 2.

1
FrankieTheKneeMan 23 Май 2013 в 19:25