정규식을 사용하여 큰 따옴표 안에 문자열을 가져올 수 있습니까?정규식의 큰 따옴표
<img src="http://yahoo.com/img1.jpg" alt="">
내가 외부 문자열 http://yahoo.com/img1.jpg alt=""
을 얻으려면 :
나는 다음과 같은 문자열을 가지고있다. 정규 표현식을 사용하여 이것을 어떻게 할 수 있습니까?
정규식을 사용하여 큰 따옴표 안에 문자열을 가져올 수 있습니까?정규식의 큰 따옴표
<img src="http://yahoo.com/img1.jpg" alt="">
내가 외부 문자열 http://yahoo.com/img1.jpg alt=""
을 얻으려면 :
나는 다음과 같은 문자열을 가지고있다. 정규 표현식을 사용하여 이것을 어떻게 할 수 있습니까?
내가 원하는 이유를 모르겠다. alt 태그도 있지만이 정규식은 사용자가 원하는 것을 수행합니다. 그룹 1은 url이고 그룹 2는 alt 태그입니다. 나는 아마도 IMG와 SRC 사이에 여러 공백이 될 수 있다면 정규 표현식을 약간 수정 한 것 '='주위에 공백이있을 수있는 경우
Pattern p = Pattern.compile("<img src=\"([^\"]*)\" (alt=\"[^\"]*\")>");
Matcher m =
p.matcher("<img src=\"http://yahoo.com/img1.jpg\" alt=\"\"> " +
"<img src=\"http://yahoo.com/img2.jpg\" alt=\"\">");
while (m.find()) {
System.out.println(m.group(1) + " " + m.group(2));
}
출력 :
http://yahoo.com/img1.jpg alt=""
http://yahoo.com/img2.jpg alt=""
당신은 이런 식으로 작업을 수행 할 수 있습니다
Pattern p = Pattern.compile("<img src=\"(.*?)\".*?>");
Matcher m = p.matcher("<img src=\"http://yahoo.com/img1.jpg\" alt=\"\">");
if (m.find())
System.out.println(m.group(1));
을하지만, 당신이 HTML 일부 라이브러리를 사용하는 것이 구문 분석하는 경우 : 정규식 HTML을 구문 분석하는 것은 좋은 생각이 아니다. 나는 jsoup와 함께 좋은 경험을했다 : 파서는"
이전src="
및 후"
을 제외한 모든 문자 를 취할 것
String url = "";
Pattern p = Pattern.compile("(?<=src=\")[^\"]*(?=\")");
Matcher m = p.matcher("<img src=\"http://yahoo.com/img1.jpg\" alt=\"\">");
if (m.find())
url = m.group());
:이 작업을 수행해야합니다
String fragment = "<img src=\"http://yahoo.com/img1.jpg\" alt=\"\">";
Document doc = Jsoup.parseBodyFragment(fragment);
Element img = doc.select("img").first();
String src = img.attr("src");
System.out.println(src);
: 여기 예제
나는 작전에 의해 게시물을 읽는 방법을 모르지만 그의 예제는 그가 alt 태그를 원한다는 것을 보여준다. (왜 그런지 알지 못하고 왜 태그에 alt 태그의 값뿐만 아니라 왜 태그가 필요한지 알지 못합니다.) – Kaj
@Kaj - 알지만, 링크 된 URL *와 'alt' 속성 (xml 표기법의 이름과 값)은 오타처럼 냄새가났다;) –
.NET? PHP? 러비? – rerun
자바에서 regex 사용 – Ammu
항상 alt 태그도 갖고 싶습니까? – Kaj