Hvordan kan jeg få et udtryk til at matche alt (inklusive mellemrum)?
Eksempel:
Regex: Jeg har købt _____ får.
Matcher: Jeg har købt får. Jeg købte et får. Jeg købte fem får.
Jeg har prøvet at bruge (.*)
, men det ser ikke ud til at virke.
Opdatering: Jeg fik det til at virke, problemet var tilsyneladende ikke med de regulære udtryk, det var bare fordi (.)-tegnene blev undviget.
Normalt passer punktummet til alle tegn uden newlines.
Så hvis .*
ikke virker, skal du indstille indstillingen "dot matcher også newlines" (eller bruge (?s).*
).
Hvis du bruger JavaScript, som ikke har en "dotall" indstilling, kan du prøve [\s\S]*
. Dette betyder "match et hvilket som helst antal tegn, der enten er whitespace eller ikke-whitespace" - effektivt "match enhver streng".
En anden mulighed, som kun virker for JavaScript (og som ikke genkendes af andre regex-smagere) er [^]*
, som også matcher enhver streng. Men [\s\S]*
synes at være mere udbredt, måske fordi den er mere bærbar.