Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

regular expression probleempje

Pagina: 1
Acties:

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 06-11 23:28
Ik heb een probleem met regular expressions in Powershell. Maar feitelijk maakt de programmeertaal niet zo heel erg veel uit.

Wat ik wil is van een string $test = 1.0.0.0 dat er uiteindelijk 1.0.0 wordt weergegeven, de laatste .0 moet weg.
Die string kan echter ook 1.0.0.202 zijn. De uitkomst moet hetzelfde zijn.
Hoe is dit op te lossen?

Ik heb al diverse zaken geprobeerd uit deze website Regular expression Cheat sheet

$test = 1.0.0.0
$test = $test -replace "\..$

Bovenstaande werkt prima voor een enkele laaste digit, maar doet niets met meercijferige digits.

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online

mph_rbi

dus ...

In een perl regular expression zou het zoiets zijn als : s/(\d+\.\d+\.\d+\.)\d+/$1/

dus ...


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:23

Creepy

Tactical Espionage Splatterer

Of zoek de laatste punt en strip alles vanaf daar. Ik ken powershell niet maar met iets als strpos en substring moet je ook een heel eind kunnen komen. Geen regexp voor nodig.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

-- Jamie Zawinski

Oftewel; I'm with stupid ^^

https://niels.nu


  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 22-11 19:09
Wel minder code :9

JavaScript:
1
2
3
4
var bla = '1.0.0.0'
bla.replace(/\.[^\.]*$/,'')
// versus
bla.substr(0, bla.lastIndexOf('.'))

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 06-11 23:28
Deze werkt in powershell, ongeacht de hoeveelheid cijfers in het laatste gedeelte:

$test1 = "1.22.33.1" -replace "\.([0-9]+)$"
$test2 ="3.22.31.250" -replace "\.([0-9]+)$"

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Als je blind de laatste punt en wat daar achter komt wilt weggooien is een (last)IndexOf, een prima oplossing. (zoals genoemd door creator1988)

Als je dit alleen wilt doen als er een wordt voldaan een een bepaalde conditie moet je toch echt eerst bepalen of dit zo is. En dan is de vraag of dit duidelijk kan met een Regular Expression. Maar dat ligt dus heel erg aan welke validatie wilt doen om te bepalen of je daadwerkelijk e.a. wil strippen.

while (me.Alive) {
me.KickAss();
}


Verwijderd

Denk je er wel aan dat je niet per definitie het netwerkadres krijgt als je het laatste octet van een IP-adres in '0' verandert? Dat werkt alleen als je subnetmask 255.255.255.0 is....
Pagina: 1