공백을 포함하여 절대적으로 일치하는 표현을 어떻게 만듭니 까?
예:
정규식 : 나는 _____ 양을 샀다.
성냥 : 나는 양을 샀다. 나는 양을 샀다. 나는 다섯 양을 샀다.
을 사용하려고 시도했지만 (.*)
작동하지 않는 것 같습니다.
업데이트 : 작동하도록했습니다. 문제는 정규 표현식이 아니 었습니다. (.) 문자가 이스케이프 된 것입니다.
답변
일반적으로 점은 개행을 제외한 모든 문자와 일치합니다 .
그래도 .*
작동하지 않으면 “도 줄 바꿈과 일치”옵션을 설정하십시오 (또는 사용 (?s).*
).
“dotall”옵션이없는 JavaScript를 사용하는 경우을 시도하십시오 [\s\S]*
. 이것은 “공백 또는 비 공백의 문자 수와 일치”-사실상 “모든 문자열과 일치”를 의미합니다.
JavaScript에서만 작동하고 다른 정규 표현식으로 인식되지 않는 또 다른 옵션은 [^]*
모든 문자열과 일치하는 것입니다. 그러나 [\s\S]*
더 휴대하기 쉽기 때문에 더 널리 사용되는 것 같습니다.
답변
(.*?)
무엇이든 일치합니다-몇 년 동안 사용해 왔습니다.
답변
다음 중 하나를 선택하고 암기하십시오 !!! 🙂
[\s\S]*
[\w\W]*
[\d\D]*
설명:
\s
: 공백 : 공백이 \S
아님
\w
: 단어 : 단어가 \W
아님
\d
: 숫자 : 숫자가 \D
아님
(당신은을 교환 할 수 있습니다 *
에 대한 +
당신이 1 개 이상의 문자하려는 경우 [대신 0 이상).
보너스 편집 :
한 줄로 모든 것을 일치 시키려면 다음을 사용할 수 있습니다.
[^\n]+
설명:
^
: 아님
\n
: 줄 바꿈
+
: 1 자 이상
답변
이 시도:
I bought (.* )?sheep
또는
I bought .*sheep
답변
를 사용 .*
하고 구현의 단일 줄과 동등한 것을 사용하고 있는지 확인하여 줄 끝에서 일치하도록하십시오 .
여기에 좋은 설명이 있습니다-> http://www.regular-expressions.info/dot.html
답변
때문에 .
줄 바꿈 또는 줄 끝을 제외하고 단일 문자를 찾습니다.
따라서 무엇이든 일치시키기 위해 다음과 같이 사용할 수 있습니다. (.|\n)*?
그것이 도움이되기를 바랍니다!
답변
(.*?)
나를 위해 작동하지 않습니다. 에 둘러싸여있는 주석을 찾으려고하는데 /* */
여러 줄이 포함될 수 있습니다.
이 시도:
([a]|[^a])
이 정규식은 a
또는 과 일치 anything else expect a
합니다. 물론 모든 것을 일치시키는 것을 의미합니다.
BTW는 제 상황에서 /\*([a]|[^a])*/
C 스타일 주석과 일치합니다.
더 간결한 방법으로 @mpen에게 감사합니다.
[\s\S]