PHP의 regex에서 [\ s \ S] *의 의미는 무엇입니까? [\S\s]*
은 실제로 모든 문자열을 .*
과 일치합니까?PHP의 regex에서 [ S s] *의 의미는 무엇입니까?
20
A
답변
34
기본적으로 .
은 줄 바꿈과 일치하지 않습니다. [\s\S]
은 그 문제를 둘러싼 해킹입니다.
이것은 JavaScript에서 일반적이지만 PHP에서는 /s
플래그를 사용하여 모든 문자와 일치하는 점을 만들 수 있습니다.
15
.
메타 문자는 개행을 제외한 모든 문자와 일치합니다. 따라서 일치하는 데 사용되는 .*
패턴은 줄 바꿈과 잘 일치해야하는 경우 작동하지 않습니다. 줄 바꿈을 포함한 모든 캐릭터가 너무 [\d\D]
, [\w\W]
을 공백 문자와 공백이 아닌 문자의 문자 클래스는
preg_match('/^.*$/',"hello\nworld"); // returns 0
[\s\S]
일치합니다. 따라서 귀하의 패턴 [\s\S]*
은 이제 어떤 것과도 일치합니다.
preg_match('/^[\s\S]$/s',"hello\nworld"); // returns 1
대안
은 (줄 바꿈 포함).
일치 무엇을 s
수정을 사용하는 것입니다. s
모드를 온 및 오프하는 경우 (?-s)
턴 preg_match('/^(?s).*(?-s)$/',"hello\nworld"); // returns 1
(?s)
: 인 라이닝로를 s
개질제를 사용
preg_match('/^.*$/s',"hello\nworld"); // returns 1
다른 방법이다. 일단 꺼지면 .
은 개행과 일치하지 않습니다.
1
[\s\S]
줄 바꿈을 포함한 모든 문자와 일치하는 문자 집합입니다.
.
줄 바꿈을 제외한 모든 문자와 일치합니다.
관련 문제
- 1. my_string (char * s)의 의미는 무엇입니까?
- 2. format()에서 {! s}의 의미는 언제입니까?
- 3. shutil.copy2 (s, d)와 shutil.move (s, d)의 차이점
- 4. 문자열의 끝 찾기 : * s ++ VS * s 다음 s ++
- 5. Mix s : Button 및 s : ToggleButton in s : ButtonBar
- 6. "s!" Perl의 연산자는 무엇입니까?
- 7. { "제목"; S : S : 5 43 :} MySQL 데이터베이스에
- 8. S-> S 규칙에 의해 빈 세트를 허용하는 문법
- 9. 경로는 'S'
- 10. 컨테이너에 따라 "div 's"의 높이를 조정하십시오.
- 11. javascript RegEx에서 d 플래그의 의미는 무엇입니까?
- 12. S # arp 아키텍처 란 무엇입니까?
- 13. OLEDB v/s ODBC
- 14. CentOS of dpkg -s
- 15. 구문과 s- 표현식의 차이점
- 16. 'abc.swf'v/s 'abc.html'
- 17. AJAX v/s IFrame
- 18. Conway 's Law Hold?
- 19. UITableViewController에서 "Custom Section Header View (s)"및 "Regular Header (s)"를 혼합하는 방법은 무엇입니까?
- 20. 오래된 데스크탑 프로그래머가 S + S 프로젝트를 만들고 싶습니다.
- 21. WISC (스택)의 의미는 무엇입니까?
- 22. Mongo beginner 's questions
- 23. Dijkstra 's Bankers Algorithm
- 24. S # arp에서 일대일 매핑
- 25. android 's alarm manager
- 26. DevPartner 's Metric Publisher
- 27. S # arp 아키텍처
- 28. 애플릿 v/s 서블릿
- 29. has_many with has_one 's
- 30. ClientHttpWebRequest : ArgumentNullException s
항상's' 수정 자 ... – BoltClock
언제'.'가 새 줄과 일치합니까? – yoyo
@BoltClock - 고마워, 방금 PHP로 끝났어요. – Kobi