문제 설명 :정규 표현식
내가 좋아하는 두 개의 연속적인 특수 문자를 허용하는 정규 표현식을 구축하기 위해 노력하고있어 : /_
또는 \\
또는 ./
또는 --
또는 \-
또는 다른 조합 정규 표현식에서 특별한 charcters (./\_-
)는 아래에 언급 :
^[a-zA-Z0-9\d]{1}[a-zA-Z0-9\d._/\-]{0,49}$
내가 잘못 여기서 뭐하는거야?
문제 설명 :정규 표현식
내가 좋아하는 두 개의 연속적인 특수 문자를 허용하는 정규 표현식을 구축하기 위해 노력하고있어 : /_
또는 \\
또는 ./
또는 --
또는 \-
또는 다른 조합 정규 표현식에서 특별한 charcters (./\_-
)는 아래에 언급 :
^[a-zA-Z0-9\d]{1}[a-zA-Z0-9\d._/\-]{0,49}$
내가 잘못 여기서 뭐하는거야?
mlorbetske의 정규식은 조건부 정규식의 사용을 제거하기 위해 약간 재 작성 될 수 있습니다. 또한 \d
에 의해 덮여 있기 때문에 여분의 0-9
을 정규식에서 제거합니다.
^[a-zA-Z\d](?:[a-zA-Z\d]|(?<![._/\\\-])[._/\\\-]){0,49}$
부분 (?:[a-zA-Z\d]|(?<![._/\\\-])[._/\\\-])
경기 영숫자 문자 또는 특수 문자 .
, _
, /
, \
, -
그 앞에 문자가 이미 특수 문자가 아닌 경우. 또한 정규식이 유효성 검사에만 사용되는 것으로 보이기 때문에 그룹을 캡처하지 않고 (?:pattern)
으로 만듭니다.
0- 너비의 룩어 - 배후 어설 션 (?<!pattern)
을 사용하여 앞에있는 문자가 특수 문자가 아닙니다.
이 정규식은 내가 (선행 문자의 경우 전에 중간 들어가는 것을 나타 내기 위해 conditional(?true|false)
구문을 사용했습니다 예
Regex.IsMatch("a-12--3", Pattern); //false
Regex.IsMatch("a-12-3", Pattern); //true
^[a-zA-Z0-9\d](?(?<=[\._/\\-])[a-zA-Z0-9\d]|[a-zA-Z0-9\d\._/\\\-]){0,49}$
을 요구하는 내용과 일치하는 것 그룹)은 구두점 문자 중 하나이며 구두점이 아닌 문자 만 따를 수 있습니다. 그렇지 않으면 지정된 문자가 허용됩니다.
(?<=expression)
구문은 zero-width positive look-behind입니다.
조건부 구문을 사용하지 않도록 정규식을 다시 작성할 수 있습니다.'([a-zA-Z0-9 \ d] | (? nhahtdh
@ nhahtdh 좋은 전화, 나는 그것을 upvote;) – mlorbetske
어쨌든, 당신의 현재 정규 표현식이 문제가되지 않습니다. – nhahtdh
멋진 특수 문자 (./_-) –
편집하여 내 게시물의 의미를 엉망으로 만들지 않았는지 확인하십시오. – nhahtdh
당신은 그렇게해야합니다. 이제 당신이 우리에게 자유로운 직장을 요구하고있는 것 같습니다. – zerkms