2017-01-19 9 views
1

ich jemand bin der Hoffnung, mit einem RegEx helfen kann, das die folgenden passt auf: -Regex ganze Welt oder starts-mit Wort und/oder endet-mit einem anderen Wort

  • Ort
  • Ort
  • localityName
  • locality_name
  • Ort-Name
  • Vorort
  • Vorort
  • SuburbName
  • suburb_name
  • Vorort-Name

Aber wird NICHT Spiel für: -

  • locality_pid
  • locality_index
  • LocalityRef
  • street_locality_pid
  • street_suburb_pid

Die RegEx Ich bin derzeit mit: -

/^(locality|suburb)(?=.*name).*$/img 

Spiele alle mit Ausnahme der 'Ort' genauen Worte und 'Vorstadt'

+0

'^ (Ort | Vorort) (: (:?. *) (?: Name)) * $' – SriniV

+1

'^ (Ort | Vorort) (. * Name)? $ 'https://regex101.com/r/ISuWS8/1 – yivi

+0

https://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean – yivi

Antwort

1

Sie können dies versuchen:

'/^(?:locality|suburb)(?:(?:-|_)?name)?$/im' 

Explanation

Beispielcode:

<?php 

$re = '/^(?:locality|suburb)(?:(?:-|_)?name)?$/im'; 
$str = 'locality 
Locality 
LocalityName 
locality_name 
locality-name 
suburb 
Suburb 
SuburbName 
suburb_name 
suburb-name 
locality_pid 
locality_index 
LocalityRef 
street_locality_pid 
street_suburb_pid 
'; 

preg_match_all($re, $str, $matches); 

// Print the entire match result 
print_r($matches); 

?> 

Run here

+0

Dank Maverick ! Ich kann gierig mit dem Charakter zwischen 'Ort' oder 'Vorort' und 'Name' sein, also wie folgt geändert haben: - /^(?locality|suburb)(?:.*name)?$/img –

+0

Don Ich weiß nicht, wer es abgelehnt hat und warum: | –