javascript — шаблон регулярного выражения, который будет соответствовать одинаковым или одинаковым строкам в теме

Я даже не знаю, как правильно установить заголовок для этого вопроса. Так что я пытался что-то сделать, но мне не удалось. Я предполагаю, что было бы лучше показать несколько примеров ниже того, чего я хочу достичь.

// Let's say I have a list of some tags/slugs.

$subjects = [
'this-is-one',
'might-be-two',
'yessir',
'indeednodash',
'but-it-might'
];

$patterns = [
'this-is-one', // should match $subjects[0]
'mightbetwoorthree', // should match $subject[1]
'yes-sir', // should match $subject[2]
'indeednodash', // should match $subject[3]
'but-it-might-be-long-as-well' // should match $subject[4]
];

Итак, как можно видеть … Некоторые шаблоны не полностью / точно не соответствуют заданному предмету … Так что это моя проблема. Я хочу сделать регулярное выражение, которое бы соответствовало всем возможным вариантам.

Я попробовал что-то простое, в цикле foreach, но, конечно, это не сработает, так как не полностью соответствует …

if (preg_match("/\b$pattern\b/", $subject)) { // ... }

Любые предложения, объяснения и примеры кода, пожалуйста … Я пытаюсь сосредоточиться на регулярных выражениях, но не получается.

Я тоже буду помечать JS, потому что не обязательно иметь дело с php или же preg_match,

1

Решение

function getMatchesOf(pattern, subjects) {
var result = [];
pattern = pattern.replace(/[^a-z]/g, '');
subjects.forEach(function(subject) {
var _subject = subject.replace(/[^a-z]/g, '');
if(pattern.includes(_subject))
result.push(subject);
});

return result;
}var subjects = [
'this-is-one',
'might-be-two',
'yessir',
'indeednodash',
'but-it-might'
];

var patterns = [
'this-is-one',
'mightbe',
'yes-sir',
'indeednodash',
'but-it-might-be-long-as-well'
];

console.log(patterns[0] + " matches: ", getMatchesOf(patterns[0], subjects));

console.log(patterns[4] + " matches: ", getMatchesOf(patterns[4], subjects));
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector