Как получить список из одного слова из wordnet без специальных символов? Я пытаюсь сделать это так:
const wordnet = require('wordnet')
await wordnet.init();
let results = await wordnet.list();
const words = results.filter(m=> m.includes("raine"))
//array = ["capital of the ukraine", "rainer maria rilke", "cross of lorraine", "straight-grained", "quiche lorraine", "coarse-grained", "featherbrained", "pebble-grained", "scatterbrained", "toilet-trained", "unrestrainedly", "animal trainer", "lorraine cross", "trained worker", "close-grained", "cross-grained"]
message.channel.send(`${words}`)
//expected output: ["featherbrained", "scatterbrained", "unrestrainedly"]
Я знаю, что это можно сделать с помощью RegExp, но я не знаю, как это сделать. Мне нужна помощь.
значит, !@$%^-
и т.д. В массиве есть слова с -
. Я хотел получить все 1 слово, исключая слова с -
.
Вы можете сначала проверить символы алфавита.
const
array = ["capital of the ukraine", "rainer maria rilke", "cross of lorraine", "straight-grained", "quiche lorraine", "coarse-grained", "featherbrained", "pebble-grained", "scatterbrained", "toilet-trained", "unrestrainedly", "animal trainer", "lorraine cross", "trained worker", "close-grained", "cross-grained"],
words = array.filter(m => /^[a-z]+$/i.test(m) && m.includes("raine"));
console.info(words);
Другой подход с использованием строки и созданием из нее регулярного выражения.
const
array = ["capital of the ukraine", "rainer maria rilke", "cross of lorraine", "straight-grained", "quiche lorraine", "coarse-grained", "featherbrained", "pebble-grained", "scatterbrained", "toilet-trained", "unrestrainedly", "animal trainer", "lorraine cross", "trained worker", "close-grained", "cross-grained"],
word = 'raine',
wordR = new RegExp(`^[a-z]*${word}[a-z]*$`, 'i'),
words = array.filter(RegExp.prototype.test, wordR);
console.info(words);
Обратите внимание, что foo_raine_123
также будет соответствовать, так как \w
совпадает с [a-zA-Z0-9_]
.
теперь разрешены только персонажи.
здесь имеются в виду спецсимволы?