php preg_match

3 Cevap php

I preg_match(), belirli bir dize gibi `@#$%^&/ ' gibi özel karakterler olmamalı böyle kullanmak istiyorum.

Örneğin:

Coding : Outputs valid
: Outputs Invalid(String beginning with space)
Project management :Outputs valid (space between two words are valid)
'Design23' :Outputs valid
23Designing : outputs invalid
123 :Outputs invalid

Denedim ama geçerli bir cevap ulaşamadı.

3 Cevap

Denemek

'/^[a-zA-Z][\w ]+$/'

Böyle bir regex yardımcı olur mu?

^[a-zA-Z0-9]\w*$

Bu şu anlama gelir:

  • ^ = Bu model dizenin başından başlamak gerekir
  • [a-zA-Z0-9] = Bu karakter bir harf (a-z ve A-Z) veya basamak (0-9, ayrıca bkz {[(4)] olabilir, })
  • \w Bir kelime bir karakter =. Bu harfler, sayılar ve beyaz boşluk içeren (değil varsayılan olarak yeni hatlar)
  • * = Tekrar şey, 0 veya daha fazla kez
  • $ = Bu model dizenin sonunda bitirmek gerekir

Kaçırdığım koşulunu karşılamak için, bu deneyin

^[a-zA-Z0-9]*\w*[a-zA-Z]+\w*$

Ben eklenen ekstra şeyler bu ilk karakter için bir rakam var sağlar, ama + 1 veya daha fazla gelir, çünkü o her zaman, çünkü [a-zA-Z]+ bir harf içermelidir.

Bu ödev ise, belki sadece normal ifadeler öğrenmek gerekir: