Regex hulp

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

Bekijk vacature »

.NET Developer

Dit ga je doen Tot jouw takenpakket behoort onder andere: Webapplicaties ontwerpen, bouwen, testen en implementeren in .NET/C#.; Ontwikkelen, implementeren en beheren van maatwerkapplicaties; Onderhouden en beheren van standaardpakketten; Onderzoeken en beoordelen van nieuwe technieken. Hier ga je werken Als .NET ontwikkelaar kom je te werken bij een grote semioverheidsinstelling in Nijmegen. De organisatie staat garant voor het leveren van onderwijs en les- en onderzoeksmateriaal voor duizenden betrokkenen. De organisatie wil bijdragen aan een gezonde, vrije wereld met gelijke kansen voor iedereen. Binnen de teams hangt een open en collegiale cultuur met veel aandacht voor een prettige en sociale werksfeer.

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

Bekijk vacature »

Informeel bureau zoekt Senior PHP developer

Functie Als senior PHP developer neem je het voortouw in ontwikkeltrajecten en ben je in staat werk uit te leggen aan collega’s om zo je kennis met hen te delen. Je deinst niet terug voor ingewikkelde projecten. Deze zie jij alleen maar als uit uitdaging. Je werkt doorlopend aan klantcases (en hierdoor je klant echt leert kennen), maar toch ben je afwisselend bezig. Dit alles in een vrije en ontspannen werksfeer, met een team van gelijkgestemde. Binnen de development teams werken ze met o.a. PHP, Laravel, React, Node, Elastic, Amazon AWS, JIRA, Solid, Domain-driven-design, Doctrine, Redis, docker, Kubernetes, CI, PHP

Bekijk vacature »

Senior .Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

Bekijk vacature »

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

08/08/2013 22:53:34
Quote Anchor link
Hoi ik ben bezig om een bepaalde tag uit te lezen, een zelf verzonnen tag natuurlijk.

Dit is de volledige tag:
{module:agenda:params(null, null)}

Nu lukt het mij wel om de volledige tag uit elkaar te halen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$array = array
(
    [0] => module
    [1] => agenda
    [2] => params(null, null)
);


Alleen nu wil ik $array[2] gaan regexen.

Ik wil dus weten wat er tussen params( ) zit.
Wie kan me erbij helpen, heb al meerdere dingen geprobeerd maar regex blijft een HELL.

Alvast bedankt.
 
PHP hulp

PHP hulp

23/04/2024 18:34:54
 
Wouter J

Wouter J

08/08/2013 23:43:25
Quote Anchor link
Je kan regexen vaak op 2 manieren bekijken. Regex Beginners kijken vaak naar het geheel. Dit resulteert in dit geval in 2 regexen.
In zo'n geval denk je eerst, ik moet het gedeelte tussen param() zit en daarna die string opsplitsen bij de ,. Dat wordt dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$str
= 'param(null, "foo", true, null)';

preg_match('{
    # match "param("
    param\(
        # alles tussen de haakjes
        (.+?)
    # sluithaakje
    \)
# x flag zorgt dat alle whitespace en comments niet in de regex worden opgenomen
}x'
, $str, $ms);

$params = explode(', ', $ms[1]);
?>

Dit kan, maar het kan mooier.




Meer ervaren regexers zullen anders naar zo'n string kijken. In plaats van naar het hele geheel te kijken kijken ze naar het gedeelte dat ze moeten matchen. In jouw geval wil je het woord na 'param(' matchen totaan de volgende komma, je wilt elk woord tussen 2 komma's matchen en je wilt het woord voor ) matchen. Dit alles kan je in 1 regex stoppen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$str
= 'params(null, true, "Foo", null)';

preg_match_all('{
    # [^,]+ betekend alles wat geen komma is
    # (?<=...) is een look behind. Dit betekend dat het gedeelte op de 3 puntjes
    # gematched moet worden voor de rest van de regex, maar dat hij niet meegenomen
    # wordt in de match

    # matches "null" in "params(null"
    (?<=params\()[^,]+

    | # dit is het scheidingsteken

    # (?=...) is een look ahead, zelfde als look behind maar dan voor erachter

    # matches "null" in " null)"
    (?<= )[^,]+(?=\))

    |

    # matches "true" in ", true" and ""foo"" in ", "foo""
    (?<=, )[^,]+
}x'
, $str, $matches);

$params = $matches[0];
?>


Je ziet dat ik de volgorde wat heb omgedraaid, omdat anders de versie voor het haakje op het eind nooit zou worden gebruikt, omdat de gene die alles vanaf het haakje match hier al zou matchen
Gewijzigd op 08/08/2013 23:45:58 door Wouter J
 

09/08/2013 00:05:10
Quote Anchor link
HOOW LEE FUCK.
Damn, dit moet ik ff goed lezen en begrijpen.
Ik ben idd een regex beginner, heb me er vaker aan gewaagd maar het is echt facking klote als iemand het je kan uitleggen.
Jou uitleg is ZEKER wel uitgebreid, nu nog kijken of ik er wat van kan snappen.

Alvast bedankt en wellicht heb ik nog een vraagje voor je.
Een goeienacht alvast gewenst Wouter.

Toevoeging op 09/08/2013 00:15:32:



Kerel jij bent echt pro in regex.
Het is een onwijs mooie tool van PHP, degene die dit ook heeft ontwikkeld moet zeker wel een autist zijn geweest want je moet echt een mega brein hebben.
De werkt wel wat je aangeeft en de 2e manier is echt waaayyy ahead of me.
Je uitleg is wel rete goed, je legt exact uit wat je doet en ik begrijp het ook wel redelijk.

Maar bij de 2e optie is het enige wat ik zie staan ... #^(#*()^..*#^*(#^* hahaha
Toch super bedankt, en ik ga er zeker ook wel mee oefenen.
Dit zal niet de laatste keer zijn dat is een "module" tag of iets wil maken.
 
Wouter J

Wouter J

09/08/2013 00:36:59
Quote Anchor link
[Nerd mode]
De php oreg library is de php port van de pcre library, welke origineel uit perl komt en wordt gebruikt in veel talen. Het is dus niet slechts een php tool
[/nerd mode]
 
Jan R

Jan R

09/08/2013 07:12:15
Quote Anchor link
net zoals de q&a toppic welke hier resent werd gestart zou ook hiervoor een duidelijke uitleg héél interresant zijn. Zou dit lukken, Wouter?

Jan
 
- SanThe -

- SanThe -

09/08/2013 07:16:29
Quote Anchor link
Jan R op 09/08/2013 07:12:15:
net zoals de q&a toppic welke hier resent werd gestart


Waar dan?
 
Jan R

Jan R

10/08/2013 07:38:43
Quote Anchor link
- SanThe - op 09/08/2013 07:16:29:
Jan R op 09/08/2013 07:12:15:
net zoals de q&a toppic welke hier resent werd gestart


Waar dan?


http://www.phphulp.nl/php/forum/topic/q-en-a-sql-injecties/91714/
 

10/08/2013 13:22:40
Quote Anchor link
@Wouter nu heb ik toch nog een probleempje in de regex.
Als ik nu maar 1 param meegeef zonder komma's enzo dan gaat het mis..

{module:agenda:getlist:params(2)}

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
Array
(
    [0] => Array
        (
            [0] => params(2
        )

)


Ik heb al zitten rotzooien maar ik maak het alleen maar kapot hahah
Zou je mij nog een keer uit de brand kennen helpen.
 
Wouter J

Wouter J

18/08/2013 16:07:16
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$str
= 'params(nul)';

preg_match_all('{
    # matches "null" in " null)"
    (?<=\s)[^,]+(?=\))
    
    |
    
    # matches "null" in "(null)"
    (?<=\()[^,]+(?=\))

    |

    # matches "null" in "params(null"
    (?<=params\()[^,]+

    |    

    # matches "true" in ", true" and ""foo"" in ", "foo""
    (?<=,\s)[^,]+
}x'
, $str, $matches);

$params = $matches[0];
?>


Aanpassingen: spaties vervangen door \s (doordat we de x flag gebruiken), de volgorde wat veranderd, comments verwijderd en een rule voor (iets) toegevoegd
Gewijzigd op 18/08/2013 19:10:47 door Wouter J
 

22/08/2014 18:33:51
Quote Anchor link
Hey Wouter,

Ik heb weer een probleem ermee.
Deze waarde krijg ik nu terug en eigenlijk moeten er 2 waardes zijn of indien ik dat aangeef meer waardes.

{{module:menu:params(shop-artists, shop-artists)}}

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
Array
(
    [0] => Array
        (
            [0] => shop-artists
        )

)
Gewijzigd op 23/08/2014 13:12:04 door
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.