오늘 나는 다음과 같은 정규 표현식을 가로 질러왔다 정규 표현식에 한정 기호로 사용 루비 그것으로 어떻게 할 것인지 알고 싶어 할 때 :의미`+`이어`*`, 후자는
> "#a" =~ /^[\W].*+$/
=> 0
> "1a" =~ /^[\W].*+$/
=> nil
이 경우 Ruby는 +
문자를 무시하는 것으로 보입니다. 그게 잘못되면, 나는 그것으로 무엇을하고 있는지 잘 모르겠습니다. *
이 이스케이프되지 않고 한정 기호로 사용되기 때문에 한정 기호로 해석되지 않는 것으로 추측됩니다. Perl/Ruby 정규 표현식에서 특수 문자로 해석 될 수없는 문맥에서 문자 (예 : -
)가 사용되는 경우 리터럴로 취급됩니다. 그러나이 경우에 그런 일이 발생하면 lvalue 문자열에 +
이 없으므로 첫 번째 일치가 실패 할 것으로 예상됩니다.
+
문자를 사용하는 것이 적절합니까? 위의 동작이 버그입니까? 나는 명백한 것을 놓치고 있는가?
어디에서이 정규식을 발견 했습니까? –
내 작업 과정에서 일부 타사 보안 내용이 있습니다. 저는 정규 표현식이 저자가 의도 한 것과 다르다고 생각 합니다만, 루비의 행동을 보았을 때 나는이 가정에 대해 질문하기 시작했습니다. –