사람은 내가 정규식을 돕거나 나에게 다음과 같은 문자열을 확인/분할 할 수 있습니다 좋은 해결책 줄 수 :좋은 정규 표현식을 만드는 데 도움이 되나요?
"< 2342Flsdn3Z> < 9124Fsflj20>"
모두가 "<"로 시작하고, (6) caracter는 "F"이고 문자열은 ">"로 끝납니다 "문자열"을 찾을 수있는 Regex를 만들 수 있습니까?
사람은 내가 정규식을 돕거나 나에게 다음과 같은 문자열을 확인/분할 할 수 있습니다 좋은 해결책 줄 수 :좋은 정규 표현식을 만드는 데 도움이 되나요?
"< 2342Flsdn3Z> < 9124Fsflj20>"
모두가 "<"로 시작하고, (6) caracter는 "F"이고 문자열은 ">"로 끝납니다 "문자열"을 찾을 수있는 Regex를 만들 수 있습니까?
이 방법에 대해 : <.{4}F[^>]+>
그것은 어떤 4 개 문자, F 다음에 개방 <
과 일치 , >
(>
이 아닌 다른 것과 일치 시킴)을 종료 할 때까지 아무 것도 없습니다.
string input = "<2342Flsdn3Z><9124Fsflj20>";
string pattern = "<.{4}F[^>]+>";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine(m.Value);
}
편집 : 좋은 정규식 명확하게 일치시킬 패턴을 지정하는 것입니다 만드는 부분. 예를 들어, 질문을 한 방식으로 특정 세부 사항을 알 수 있습니다. 나는 F가 당신이 지정한 곳이라면 어떤 캐릭터 든 일치시킬 패턴으로 반응했습니다. F는 X이 될 것입니다 후 \d{4}
또는 [0-9]{4}
은 우리에게 여러 가지를 말했다 길이 (6?) 만 숫자와 문자가 될 수 있습니다 [\dA-Z]{6}
RegexOptions.IgnoreCase
(.NET)을 사용하거나 [a-zA-Z]
쉽게 :
<\d{4}F\w+>
또는 그냥 문자열을 얻을 :
(?<=<)\d{4}F\w+(?=>)
나는 괄호 안의 모든 단어 문자로 필요로하는 몇 가지 가정을 만들고있어 그 (당신이 하나를했다) 후행 대괄호 앞에 적어도 하나이지만 어쩌면 임의의 수의 단어 문자가 있습니다.
예.
< <[A-Za-z\d]{4}F[A-Za-z\d]{6}>
내가 항상 여섯 F. 후에는 필요에 따라 반복을 수정할 수 있습니다 그 가정을 만들어
원래 제안 된 솔루션은 유효 코멘트를 보존하기 : [\d\w]{4}F[\d\w]{6}>
는
\ w는 밑줄뿐만 아니라 글자 나 숫자와도 일치합니다. – tvanfosson
고맙습니다. –
이 문장뿐만 아니라 숫자와 문자를 일치합니다 - 확인 할 수 있습니다,하지만 당신은 알고 있어야합니다. – tvanfosson
@ tvanfosson 동의, 나는 OP가 특정 아니기 때문에 그것을 열어 두었습니다. –