Имам нужда от помощ за изграждането на регулярен израз за preg_match
съгласно тези правила:
- само първата и последната буква / цифра.
- празното пространство не е позволено
- char може да бъде само - буква / цифра / "-" / "_" / "."
Правни примери:
- b.t612_rt
- коловоз-бъда
- rut7565
Не е правен пример:
- .btr78; btr78- (първите / последните разрешени символи)
- начало; звезден край; (всяко празно пространство)
- TR $ бъде; TR * стайна температура; tr / tr ... (не са позволени символи)
Edit: Премахвам 4 правила с neigbor chars "_" "-" "."
Моля, помогни ми.
Благодаря
Отговори:
3 за отговор № 1Изпробвайте този регулярен израз:
^[A-Za-z0-9]+([-_.][A-Za-z0-9]+)*$
Това съвпада с всяка последователност, която започва с поне една буква или цифра (^[A-Za-z0-9]+
), които могат да бъдат последвани от нула или повече последователности на един от -
, _
, или .
([-_.]
), които трябва да бъдат последвани от поне една буква или цифра ([A-Za-z0-9]+
).
2 за отговор № 2
Опитайте тази:
^[p{L}p{N}][p{L}p{N}_.-]*[p{L}p{N}]$
В PHP:
if (preg_match(
"%^ # start of string
[p{L}p{N}] # letter or digit
[p{L}p{N}_.-]* # any number of letters/digits/-_.
[p{L}p{N}] # letter or digit
$ # end of the string.
%xu",
$subject)) {
# Successful match
} else {
# Match attempt failed
}
Минимална дължина на низ: Два знака.
1 за отговор № 3
Това изглежда работи добре за предоставените примери: $patt = "/^[a-zA-Z0-9]+([-._][a-zA-Z0-9]+)*$/";
1 за отговор № 4
Е, за всяко ваше правило:
Първа и последна буква / цифра:
^[a-z0-9]
и
[a-z0-9]$
празното пространство не е позволено (нищо не е необходимо, тъй като правим положително съвпадение и не разрешаваме никъде на празно място):
Само букви / цифри / - / _ /.
[a-z0-9_.-]*
Няма съседни символи:
(?!.*[_.-][_.-])
Така че, всички заедно:
/^[a-z0-9](?!.*[_.-][_.-])[a-z0-9_.-]*[a-z0-9]$/i
Но с всички regexes, има няколко решения, така че опитайте ...
Редактирайте: за вашата редакция:
/^[a-z0-9][a-z0-9_.-]*[a-z0-9]$/i
Просто премахнете секцията за правилото, което искате да промените / отдалечено. толкова е лесно ...