2017-01-19 3 views
1

Я надеюсь кто-то может помочь с RegEx, который будет соответствовать следующему: -RegEx матч весь мир или начинается-с словом и/или заканчивается, с другим словом

  • местность
  • Местность
  • LocalityName
  • LOCALITY_NAME
  • локальность имя
  • пригороде
  • Пригород
  • SuburbName
  • suburb_name
  • пригороде имя

Но будет НЕ матч за: -

  • locality_pid
  • locality_index
  • LocalityRef
  • street_locality_pid
  • street_suburb_pid

регулярное выражение настоящее время я использую: -

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

Соответствует всем, кроме точных слов 'локальности' и 'пригорода'

+0

'^ (локальность | пригород) (: (:?. *) (?: название)) * $' ' – SriniV

+1

^(местонахождение | пригород) (. * name)? $ 'https://regex101.com/r/ISuWS8/1 – yivi

+0

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

ответ

1

Вы можете попробовать это:

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

Explanation

Пример кода:

<?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

Спасибо Maverick ! Я могу быть жадным с характером между «местностью» или «пригородом» и «именем», поэтому изменил следующим образом: - /^(?:locality|suburb)(?:.*name)?$/img –

+0

Don Не знаю, кто его подавил, и почему: | –

Смежные вопросы