[regex] 정규식-무엇이든 일치

공백을 포함하여 절대적으로 일치하는 표현을 어떻게 만듭니 까?
예:

정규식 : 나는 _____ 양을 샀다.

성냥 : 나는 양을 샀다. 나는 양을 샀다. 나는 다섯 양을 샀다.

을 사용하려고 시도했지만 (.*)작동하지 않는 것 같습니다.

업데이트 : 작동하도록했습니다. 문제는 정규 표현식이 아니 었습니다. (.) 문자가 이스케이프 된 것입니다.



답변

일반적으로 점은 개행을 제외한 모든 문자와 일치합니다 .

그래도 .*작동하지 않으면 “도 줄 바꿈과 일치”옵션을 설정하십시오 (또는 사용 (?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]