Здесь существует несколько опций. В первую очередь, Схема и язык Common LISP довольно отличаются довольно глубокими способами (как обзор); необходимо выбрать для запуска с и палка с ним некоторое время . Я - поклонник языка Common LISP, но это может быть одним из тех vi-vs-EMACS религиозных вопросов.
Для Схемы, пойдите для Kent Dybvig Язык программирования Схемы , сопровождаемый SICP.
Для языка Common LISP, а также Практического языка Common LISP, я рекомендовал бы David Lamkins Успешный Lisp. Успешный Lisp также доступен онлайн для свободного .
После, чем, посмотрите Lisp в Маленьких Частях Queinnec, и Norvig Lisp в книге .
AI, которую Marty Hall имеет хороший список в Johns Hopkins.
Обновленный : Я не имею в виду, придерживаются его навсегда, просто та попытка узнать, что оба сразу сбивали бы с толку.
Вторичная опция состояла бы в том, чтобы соответствовать и возвратить нецифры с некоторым выражением, подобным,
/\D+/g
, который будет, вероятно, работать на ту определенную строку в вопросе (1 ding ?
).
function non_digit_string(str) {
const regex = /\D+/g;
let m;
non_digit_arr = [];
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
m.forEach((match, groupIndex) => {
if (match.trim() != '') {
non_digit_arr.push(match.trim());
}
});
}
return non_digit_arr;
}
const str = `1 ding ? 124
12 ding ?
123 ding ? 123`;
console.log(non_digit_string(str));
, Если Вы хотите упростить/изменить/исследовать выражение, оно было объяснено на верхней правой панели regex101.com . Если бы Вы хотели бы, можно также смотреть в эта ссылка , как она соответствовала бы против некоторых демонстрационных исходных данных.
<час>jex.im визуализирует регулярные выражения: