/(^.*?\bapples?\b.*$)/i
Редактировать: выше будет соответствовать всей строке, содержащей слово "яблоки", что я думал, что вы просили. Если вы просто пытаетесь увидеть, содержит ли строка слово, сработает следующее.
/\bapples?\b/i
Регулярное выражение (я), которые я пробовал:
/[aA]pple/ and /[^a-zA-Z0-9][aA]pple/
Первый просто проверяет наличие следующих символов по порядку: apple, независимо от того, в каком контексте они используются. \ B, или символ границы слова, соответствует любому месту, где не является символом слова и слово встречается, аля \W\w
.
Второй пытается сопоставить другие символы перед появлением a-p-p-l-e и по существу такой же, как и первый, за исключением того, что требует других символов перед ним.
Тот, на который я ответил, работает следующим образом. С начала строки сопоставляет любые символы (если они существуют) без жадности, пока не встретит границу слова. Если строка начинается с apple, начало строки является границей слова, поэтому оно все равно совпадает. Затем он соответствует буквам a-p-p-l-e
и s
, если они существуют, за которыми следует граница другого слова. Затем он сопоставляет все символы до конца строки. Знак / i в конце означает, что он не чувствителен к регистру, поэтому допустимы «Apple», «APPLE» и «apple».
Если у вас есть время, я настоятельно рекомендую пройтись по учебнику по http://regular -expressions.info . Это действительно всесторонне рассказывает о том, как механизмы регулярных выражений соответствуют различным выражениям, это мне очень помогло.