Hej! För att markera slutet av den matchade strängen använder man $: Hej Per och tack för det väldigt snabba svaret! Vilken RegEx motor använder du? <b>I VB och .NET betyder \w en bokstav, tar nog med mellanslag också...</b> > I VB och .NET betyder \w en bokstav, tar nog med mellanslag också...Sista tre bokstäverna i ett ord
Är hyggligt ny med regexp och labbar lite och försöker skriva en funktion som kontrollerar de tre sista bokstäverna i ett ord, ex: abc, finns de där ska dessa ersättas med ett !. Finns de mitt i ett ord ska inget hända.
Har googlat runder i en timme nu men kan inte hitta något som verkar kunna lösa mina problem, men misstänker starkt att det är just regexp som kan lösa mitt problem.
Någon som har ett förslag på et pattern som kan fungera?Sv: Sista tre bokstäverna i ett ord
pattern = "abc$"
I vissa regexp-tolkar kan man även markera en ordgräns:
pattern = "abc\w"
Detta betyder "tecknen a, b och c, följt av en ordgräns".Sv:Sista tre bokstäverna i ett ord
Dina förslag fungerade alldeles utmärkt och nu ser mitt pattern ut såhär:
regxp.pattern = "(abc\w)|(abc$)" Sv: Sista tre bokstäverna i ett ord
I VB och .NET betyder \w en bokstav, tar nog med mellanslag också...
Så enligt mig säger ditt mönster ovan att antingen ska abc följas av antingen ett mellanslag eller en bokstav, eller så är bokstäverna det sista som strängen består av...
Jag skule skriva följande istället...
regxp.pattern = "(abc)(\s|$)"
På detta sätt kan du ersätta allt där "abc" avslutar ett ord med vad dul vill, i ditt fall skulle du ersätta med "!$2".
$2 för att få med mellanslaget som avslutar strängen...
Har du dock bara ett ord du vill kontrollera räcker det med följande mönster: (abc$)
Testa det du använder nu, skriv in ett ord som slutar på en bokstav och föregås av "abc", tex. hejabcg
/ThomasSv:Sista tre bokstäverna i ett ord
Oops... \b skall det vara.Sv:Sista tre bokstäverna i ett ord
\w är samma sak som [A_Za-z0-9_]