regex
2010-08-21 8 views 0 likes 
0

안에 무엇을 얻기 : 나는 밖으로 word1을 얻으려고정규식 문제 - 내가 여기에 정규식와 PHP 몇 가지 문제가 첫 번째 기간

<span style="color: blue">word1</span> word by word by word <span style="color: red">word</span> 

합니다. 정규식이 최선의 방법인가요? 이런 식으로 약 70 개의 문장을 처리해야합니다.

UPDATE

$one = '<span style="color: blue">word1</span> word by word by word <span style="color: red">word</span>'; 
preg_match('/<span[^>]*>(.*?)<\/span>/',$one); 
echo $one; 

하지 마십시오 작품은, 같은를 출력합니다. 내가 뭔가 잘못하고 있는거야?

감사

+0

1) 어떤 정규식/언어를 사용하고 있습니까? 2) 문장의 모든 문장이 곧바로 열린 표제 (open span) 태그의 바로 앞으로 나오는 형식으로되어 있고 그 뒤에 바로 목표 단어가 오는 것입니까? –

+0

1) php, 2) 물론, 그 단어는 매번 다르다. – c4rrt3r

+0

하지만 HTML을 파싱하려면 정규식을 사용하지 마십시오. : | –

답변

3

다음 정규식을 사용하여 첫 번째 결과를 캡처하고 나머지는 무시합니다 (첫 번째 결과 만 얻으려는 경우).

<span[^>]*>(.*?)<\/span> 

는 직접보기 : http://rubular.com/r/ateGVj5PCu


경고 :Regex is not suited for parsing HTML합니다. 코드가 이보다 더 복잡하면 (X) HTML 파서를 사용하는 것이 좋습니다

+1

+1 "정규식은 HTML 구문 분석에 적합하지 않습니다." 진부한 말은하지 않았습니다. – Kivin

0
var str = '<span style="color: blue">word1</span> word by word by word <span style="color: red">word</span> 
'; 

var myArray = str.match(/<span[^>]+>(\w+)<\/span>/); 

복귀 myArray의 [1] = "단어 1";

+0

여는 태그가 단지''이면? 내용이 비어 있다면 어떨까요? 단어에 단어가 아닌 문자가 포함되어 있다면 어떨까요? – quantumSoup

+0

필자의 경우, 단지 (색상은 빨간색과 파란색과 다를 수 있음)이 없으며 빈 칸이 없지만 때때로 두 단어가 포함되어 있습니다. – c4rrt3r

관련 문제