У меня есть следующая функция замены
myString.replace(/\s\w(?=\s)/,"$1\xA0");
Цель состоит в том, чтобы взять однобуквенные слова (например, предлоги) и добавить неразрывное пространство после них вместо стандартного пространства.
Однако вышеупомянутая переменная за 1$ не работает на меня. Это вставляет текст "1$" вместо части исходной совпавшей строки + nbsp.
Какова причина наблюдаемого поведения? Там какой-либо другой путь состоит в том, чтобы достигнуть его?
$ 1 не работает, потому что у вас нет подгрупп захвата.
Регулярное выражение должно иметь вид / \ b (\ w +) \ s + /
.
$1 не работает, так как у вас нет захватывающих подгрупп.
Регулярное выражение должно иметь вид /\b (\w + )\s +/
.
Array.ConvertAll(inputArray, p => p.ToString())
При этом массив object
преобразуется в массив string
. Можно преобразовать массив другого типа, изменив лямбда-выражение.
Кажется, вы хотите сделать что-то подобное:
myString.replace(/\s(\w)\s/,"$1\xA0");
но таким образом вы освободите пробел перед вашим однобуквенным словом. Поэтому, вероятно, также необходимо включить первые \s
в группу захвата.