/ / Как да създадете комбиниран Regex за нула водещи нули, пространство и специални знаци? - регекс

Как да създадем комбиниран Regex за нула водещи нули, пространство и специални знаци? - регекс

Имам изискване за потвърждаване на низ в случай, че има водеща нула или пространство в която и да е част от низа или специален знак в която и да е част от низа

например

"0baqp d8895 && g"

в дадения низ по-горе низът има водеща нула, пространство и специален знак, как мога да потвърдя този тип низ.

само сърфиране ми дава резултат за валидиране на пространство или специални характер или водеща нула, но не всички в едно

UPDATE

всички са валидни низове

BAqpd441587

abcdef12345

132456abcdef

всички са невалидни низове

0abcd1324568 - защото това съдържа водеща нула

abcdef ** && 46588 - защото това съдържа специални знаци

abcde 4568 - защото това съдържа пространство

всяка помощ ще бъде оценена.

Отговори:

2 за отговор № 1

Ако е възможно, бих предложила валидиране, като съвпаднах с невалидния избор, а след това разчитах на отсъствието на каквото и да е съвпадение за оценка на валидността.

Това е така, защото невалидни струни са просто дефинирани: те започват с нула или съдържат специален знак (или пространство, което може да се счита за специален знак).

Регексът, който съвпада с това, би бил просто нещо, подобно на ^0|[*& ] (където ще трябва да изброите всички символи, които считате за специални в класа на знаците, който в момента съдържа само *, & и пространство).

Можете да опитате тук, където трябваше да добавя gлобален и mпоследни флагове, за да направят регенериращата работа на множество линии, които не би трябвало да са необходими във вашия случай.

Ако резултатът от регенекса не може да бъде манипулиранслед това трябва да върнем валидността или анализирания низ, дефиницията на проблема става по-сложна: трябва да съответстваме на всеки низ, който започва от нещо различно от 0 и съдържа само знак, който не е специален (нито място).

В този случай, регекс anubhava предложи (^[^0][a-zA-Z0-9]*$) трябва да работи добре.

Друга възможност е да се използва негативен поглед, но се очаква да бъде по-малко ефективен: ^[^0](?!.*[*& ]) (в този случай също бихте искали да изброите всички специални знаци).


0 за отговор № 2

Вашият отговор е: ((^0.*$)|(^[w]*[sW]+[w]*$))

Забележка: Този израз ще MATCH невалидни низове. Така че струните, които минават по този регекс, трябва да ги смятате за невалидни.

Всички ваши примери са тествани https://regex101.com/