선택적 공백 정규식
특정 문자 사이의 공백을 무시하는 데 문제가 있습니다.저는 며칠 동안 검색을 하고 있는데 올바른 해결책을 찾을 수 없는 것 같습니다.
내 코드는 다음과 같습니다.
// Get Image data
preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch);
$image = $imagematch[4];
기본적으로 다음과 같은 시나리오가 있습니다.
<a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>
(넓이="와 src=" 사이에 공백이 없음을 유의하십시오.)
그리고.
<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>
(넓이="와 높이=" 사이에 공백이 없음을 유의하십시오.)
그 글자들 사이의 공백을 무시할 방법이 있습니까?저는 정규식 전문가가 아니기 때문에.
추가 a\s?
틈이 날 경우에
\s는 공백을 나타냅니다.
앞의 캐릭터가 한 번 발생하거나 발생하지 않을 수 있다고 말합니다.
둘 이상의 공백이 허용되고 선택 사항인 경우,\s*
.
앞의 문자는 0회 이상 발생할 수 있다고 말합니다.
'#<a href\s?="(.*?)" title\s?="(.*?)"><img alt\s?="(.*?)" src\s?="(.*?)"[\s*]width\s?="150"[\s*]height\s?="(.*?)"></a>#'
속성 이름과 = 사이에는 선택적인 공백을 사용할 수 있습니다.
다음에 선택적인 공간을 원하는 경우=
또한, a를 추가합니다.\s?
그 후에도.
마찬가지로, 선택적 문자가 있는 곳이라면 어디서나?
최대 발생이 1인 경우 또는*
최대 발생 횟수가 무제한인 경우 선택적 문자를 따릅니다.
그리고 당신의 실제 문제는[\s*]
공백이나 *를 포함하는 문자로 표시합니다.[
그리고.]
문자 클래스입니다.문자 클래스는 구성원 중 하나를 한 번만 발생시킬 수 있습니다(따라서 제거).*
그것으로부터) 그리고 만약 당신이 정량자를 추가한다면 (?
,+
,*
등) 다음에]
문자 클래스의 모든 문자는 수량자에 따라 발생할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14293024/optional-whitespace-regex
'programing' 카테고리의 다른 글
will_pagate gem으로 아약스 페이지화를 구현하는 방법 (0) | 2023.07.28 |
---|---|
콜백 함수를 실행할 때 Angular2 구성 요소의 "this"가 정의되지 않았습니다. (0) | 2023.07.28 |
MySQL에서 수백만 개의 행 업데이트 (0) | 2023.07.28 |
Spring Security - HttpSecurity를 사용한 특정 URL 및 HTTP-Method에 대한 인증 요청 (0) | 2023.07.28 |
클래스가 2개인 요소를 선택하는 방법 (0) | 2023.07.28 |