Autor | Zpráva | ||
---|---|---|---|
Apollo Profil * |
#1 · Zasláno: 11. 1. 2018, 19:49:05
Ahoj,
měl bych prosbu, už se dva dny trápím s regulérním výrazem, který má vybrat vše kromě 9 čísel pohromadě. V textu se objevují i menší čísla, takže nelze použít [^0-9] protože to nevybere třeba číslo 4, já potřebuju vybrat vše kromě 985426985 devítimístného čísla. Děkuju za pomoct. |
||
Keeehi Profil |
#2 · Zasláno: 11. 1. 2018, 21:12:47
Použij inverzi. Vyber devítimístná čísla, ta odstraň a to co ti zbude je vše, co není devítimístné číslo.
$output = preg_replace('~\d{9}~', '', $input); |
||
Apollo Profil * |
Děkuju, pomohlo! nevěděl jsem, že jde použít ~ pořád jsem to zkoušel přes ^.
Děkuju, pomohlo! nevěděl jsem, že jde použít ~ pořád jsem to zkoušel přes ^. |
||
Tomášeek Profil |
#4 · Zasláno: 12. 1. 2018, 08:35:14
Apollo:
„nevěděl jsem, že jde použít ~ pořád jsem to zkoušel přes ^“ ~ neslouží k výběru dat, ale je to jen delimiter, který jsi tam taky nějaký mít musel. Princip řešení je nehledat pomocí preg_match , ale zahodit nežádoucí sekvenci znaků pomocí preg_replace .
|
||
Keeehi Profil |
#5 · Zasláno: 12. 1. 2018, 11:52:54
Apollo:
Ano, ~ je obyčejný oddelovač a ten nemá žádný speciální význam. Velmi často se jako oddělovač používá /. Ovšem znak lomítka se v regulárním výrazu objevuje nečekaně často, pak se musí escapovat pomocí zpětného lomítka a vzniká lomitkový hell. Takže jsem si už před několika lety vybral tildu a používám tu jako oddělovač. Není v tom nic jiného než že lomítka nemusím pak escapovat a s tildou se nestkávám až tak často. |
||
Časová prodleva: 6 let
|
0