15. maj 2003 - 15:10Der er
9 kommentarer og 2 løsninger
find specifik substring
jeg har følgende streng(e):
111_enSelect_nogetTekst_select
Ud fra denne streng vil jeg meget gerne have 3 substrings:
111, enSelect_nogetTekst og _select
Jeg har problemer med at hive ud "enSelect_nogetTekst" fra min string. Hvordan kan jeg gøre dette uden at hive ud "_select" i samme operation ? Mit RegExp ser sådan ud i pseudo kode:
/^(\d+)_(alle tegn men IKKE '_select')(_select)/gi
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
erikjacobsen >> mmm-erne kan indeholde *alt* af tegn, men *ikke* strengen "_select". ccc-erne skal være select. Så hvis vi skriver om dit "udtryk":
ddd_mmmmmmmmm_select
hvor ddd = tal mmm = alle mulige tegn ( tilsvarende .+ ) men *ikke* "_select" _select = er optional i min streng. Hvis den er der, skal den hives ud, hvis den ikke er der, så skal jeg selvfølgelig ikke gøre noget med den
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- var objRegExp = /^(\d+)_(.+)(_select)?$/gi var str = "410_minSelect_select"; var arr = objRegExp.exec( str ); alert( arr[2] ); //--> </SCRIPT>
min alert giver her "minSelect_select". Den skal give "minSelect". Hvis jeg havde lavet en ny alert: alert( arr[3] );¨, så skulle denne ha givet "_select"
Jah, hvis du lover at regin får flest point....jeg er ikke grådig.
.+ er "grådig", greedy, så den matcher så meget som overhovedet muligt. Når så (_select)? er optional på grund af ?-tegnet, så kan du jo matche det streng med. Men en .+? er li'som en .+ bare ikke grådig. Den stopper altså lige for _select, for, ja, grådig er den ikke.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.