저는 지금 당장 정규 표현식 기술을 향상시키고 싶었습니다. "Mastering Regular Expressions"는 꽤 많이 추천 받았고 그래서 나는 그것을 사서 하루 종일 읽었습니다. . 처음 두 링크를 일치하지만, <i>
태그로 둘러싸인이 무시정규식 기술 향상
^(?:<b>)?(?:^<i>)?<a href="/site\.php\?id=([0-9]*)">(.*?) \(([ a-z0-9]{2,10})\)</a>(?:^</i>)?(?:</b>)?$
:
나는 다음과 같은 정규 표현식을 만들었습니다. id, title 및 type을 추출합니다.
<a href="/site.php?id=6321">site 1 title (type 1)</a>
<b><a href="/site.php?id=10254">site 2 title (type 2)</a></b>
<i><a href="/site.php?id=5479">site 3 title (type 3)</a></i>
<b><i><a href="/site.php?id=325">site 4 title (type 4)</a></i></b>
효과가 있긴하지만 너무 단순하기 때문에 오래 사용할 수 있습니까?
몇 가지를 어떻게 그것이 유형과 일치합니까? 그것은 괄호에있는 형식 이외의 단어와 일치하는 것 같습니다. 또한 "(여기 정상적인 내용)"<----와 같이 일치하는 태그가 없으므로 태그를 찾을 수 있습니다. 또한 이드가 비어 있기를 원합니까? ie - "id ="? – Tom
당신은 (? :) 그 사실을 알고 있습니까? (? : )?의 "메모리"가 없습니다. 실제로, 첫 번째 것이 나타나는 경우에만 두 번째 것을 원할 것입니다. 공식적으로 말하자면, 정규 표현식은 이것을 처리 할 수 없습니다. 특정 프로그래밍 언어에서 정규식 확장을 처리 할 수는 있지만 (정규식이라고 부른다고 생각합니다.하지만 regexes가 할 수있는 것은 아닙니다). – Tom
지금은 위의 예제와 일치시키고 싶습니다. 당신은 엔딩 태그에 대해 옳았고 그것을 만들 때 마음에 왔습니다. 또한, 형식 부분은 숫자뿐만 아니라 형식 뒤에 어떤 것도 포함 할 수 있습니다. – DanCake