Подчертавам думите в част от текст.
Ако регексирам „Порт“, думата „Португалски“ също е подчертана, но имам нужда да се маркира „Портове“.
Някакви идеи? Мразя регекс.
Благодаря
Отговори:
3 за отговор № 1Опитайте нещо подобно:
bports?b
Най- ?
означава, че s
символът не е задължителен. Най- b
в двата края съвпада с граници на думи.
По-общо можете да направите нещо подобно, за да позволите на думите да завършват s
, es
или ies
:
bwhatever(?:s|es|ies)?b
Това е много грубо и има вероятност да получите фалшиви положителни резултати и негативи. Ако искате нещо по-сложно, предполагам, че ще трябва да потърсите подходяща търсачка с пълен текст.
2 за отговор № 2
Най-основният отговор би бил този:
bPort(s?)b
b
маркира началото и края на думата. Това съвпада само с "Порт" и "Пристанища". Ако имате нужда от нечувствителни към регистъра съвпадения, използвайте нещо подобно /i
модификатор в Perl:
m/bport(s?)b/i
Или, ако искате да отговаряте само на "порт", "Порт", "портове" и "Порти", опитайте
b(P|p)ort(s?)b