Mensen zijn gelijk, maar sommige zijn gelijker dan andere | Humans need not apply
Vraag
Beste antwoord (via Yariva op 04-07-2019 12:36)
Je bedoelt iets als:Voutloos schreef op donderdag 4 juli 2019 @ 12:04:
[...]
Dit is een eenvoudig idee, een serie karakters zonder de separator. Alleen wil je de anchor op einde ipv begin string, wat goed op te zoeken moet zijn.
1
| ([^;]+)$ |
Dat werkt ook, maar is veel minder efficiënt dan wat ik in Orion84 in "Regex - Selecteer alles na een karakter mocht deze bestaan" post.
The problem with common sense is that it's not all that common. | LinkedIn | Flickr
Alle reacties
- te kijken of 't teken in de tekst zit
- de tekst te splitsen op 't teken
- het tweede element van het resultaat te pakken.
1
| ^([^;]+) |
Zie: https://regex101.com/r/5336s1/1
Of begrijp ik je nu helemaal verkeerd? Je geeft eigenlijk helemaal niet duidelijk aan wat je nu precies wilt matchen als er wel een ; in zit
[ Voor 46% gewijzigd door Orion84 op 04-07-2019 11:59 ]
The problem with common sense is that it's not all that common. | LinkedIn | Flickr
C2D E6600 - 2048MB Kingston - Sapphire HD2900XT - 200Gb Samsung - Asus P5B-E
Het is niet echt een taal, met Python etc had dit idd erg gemakkelijk geweest.Arie- schreef op donderdag 4 juli 2019 @ 11:57:
In welke taal probeer je dit op te lossen? Is het niet makkelijker om :
- te kijken of 't teken in de tekst zit
- de tekst te splitsen op 't teken
- het tweede element van het resultaat te pakken.
De reden hiervoor is dat ik in een monitoring pakket een bestaande waarde die binnenkomt met SNMP wil splitten. Helaas ben ik hierdoor afhankelijk van de tools die het monitoring pakket levert, waaronder Regex.
Mensen zijn gelijk, maar sommige zijn gelijker dan andere | Humans need not apply
Die is een stuk netter dan wat ik nu heb. Echter probeer ik alles na de ; te matchen, dit is ervoorOrion84 schreef op donderdag 4 juli 2019 @ 11:58:
Dat is toch simpelweg:
code:
1 ^([^;]+)
Zie: https://regex101.com/r/5336s1/1
Of begrijp ik je nu helemaal verkeerd? Je geeft eigenlijk helemaal niet duidelijk aan wat je nu precies wilt matchen als er wel een ; in zit
Mensen zijn gelijk, maar sommige zijn gelijker dan andere | Humans need not apply
Bijna
1
| ^([^;]+)(?:;(.*))?$ |
[ Voor 24% gewijzigd door DJMaze op 04-07-2019 12:06 ]
Maak je niet druk, dat doet de compressor maar
Dit is een eenvoudig idee, een serie karakters zonder de separator. Alleen wil je de anchor op einde ipv begin string, wat goed op te zoeken moet zijn.Yariva schreef op donderdag 4 juli 2019 @ 12:00:
[...]
Die is een stuk netter dan wat ik nu heb. Echter probeer ik alles na de ; te matchen, dit is ervoor
En de regex hierboven doet veel te moeilijk.
[ Voor 3% gewijzigd door Voutloos op 04-07-2019 12:05 ]
{signature}
Right, ok: https://regex101.com/r/5336s1/2Yariva schreef op donderdag 4 juli 2019 @ 12:00:
[...]
Die is een stuk netter dan wat ik nu heb. Echter probeer ik alles na de ; te matchen, dit is ervoor
1
| (?:[^;]+;(.*))|^([^;]+) |
The problem with common sense is that it's not all that common. | LinkedIn | Flickr
En wat nou als de string "waarde1;waarde2;waarde3" is? TS vraagt immers om een eerste splitVoutloos schreef op donderdag 4 juli 2019 @ 12:04:
Dit is een eenvoudig idee, een serie karakters zonder de separator. Alleen wil je de anchor op einde ipv begin string, wat goed op te zoeken moet zijn.
En de regex hierboven doet veel te moeilijk.
Maak je niet druk, dat doet de compressor maar
Je bedoelt iets als:Voutloos schreef op donderdag 4 juli 2019 @ 12:04:
[...]
Dit is een eenvoudig idee, een serie karakters zonder de separator. Alleen wil je de anchor op einde ipv begin string, wat goed op te zoeken moet zijn.
1
| ([^;]+)$ |
Dat werkt ook, maar is veel minder efficiënt dan wat ik in Orion84 in "Regex - Selecteer alles na een karakter mocht deze bestaan" post.
The problem with common sense is that it's not all that common. | LinkedIn | Flickr
Fair enough. Alhoewel het niet 100% waterdicht in topicstart staat wat er met meerdere ‘;’ moet gebeuren.😇DJMaze schreef op donderdag 4 juli 2019 @ 12:08:
[...]
En wat nou als de string "waarde1;waarde2;waarde3" is? TS vraagt immers om een eerste split
{signature}
Ik zal het even vermelden in de TS. In dit scenario hoeft enkel de eerste ; te worden gematched. Alles hierna hoort bij de 2de string.Voutloos schreef op donderdag 4 juli 2019 @ 12:12:
[...]
Fair enough. Alhoewel het niet 100% waterdicht in topicstart staat wat er met meerdere ‘;’ moet gebeuren.😇
Mensen zijn gelijk, maar sommige zijn gelijker dan andere | Humans need not apply
1
| ^(.*)[;].*$|(^.*;{0}.*) |
M'n ingeving? "Now you have two problems"
Mensen zijn gelijk, maar sommige zijn gelijker dan andere | Humans need not apply
Welke? De korte inefficiënte die ik noem in de post die je als beste antwoord hebt gemarkeerd, of de langere, efficiëntere regex in mijn eerdere post (waar ik in dat "beste antwoord" naar refereer)?Yariva schreef op donderdag 4 juli 2019 @ 12:42:
Thanks, ik ga verder met de oplossing die Orion heeft voorgesteld. Dank allen voor de reacties!
The problem with common sense is that it's not all that common. | LinkedIn | Flickr