2010-01-22 1 views

답변

16

대괄호는 내용이 선택 사항을 의미하지만, 대괄호 이외의 모든 의무 : 나는 다음 중 하나를 기대

RegexObject.match(string[, pos[, endpos]]) 

. 당신의 표기와

: 내가 가지고있는 기대

RegexObject.match(string, [pos], [endpos]) 

는 쓰기 : 중첩는 당신이 다음 세 번째 매개 변수를 제공하는 경우 때문에 당신은 또한 심지어 두 번째 매개 변수를 제공해야합니다 필요

r.match("foo",,) 

을 그것은 선택적 매개 변수이긴하지만. 다음과 같은 중첩되지 않은 대안은 모호합니다.

RegexObject.match(string[, pos][, endpos]) 
2

대괄호는 선택적 인수를 나타냅니다. 쉼표가 대괄호 밖에있는 경우 pos 인수 (예 :)를 사용하지 않으려는 경우에도 쉼표를 입력해야합니다.

2

그렇지 않으면 올바른 구문은 인수를 무시하는 경우에도 쉼표를 포함하기 때문입니다. 대괄호 안의 부품은 선택 사항이므로 대괄호 밖으로 쉼표를 이동하면 더 이상 선택 사항이 아닙니다. 그것은 매우 우아하지 않다,

RegexObject.match("foobar",,) 

을하지만 :

RegexObject.match(string, [pos], [endpos]) 

내가해야 할 것입니다 : 예를 들어, 단지 문자열로 아래의 함수를 호출합니다.

0

인수 목록의 모든 선택적 구성 요소를 묶는 대괄호에 대해 생각해 보면 더 적절합니다. 본질적으로, 괄호 안의 내용은 사용자의 재량에 따라 생략 될 수 있습니다.

0

대괄호는 그 사이의 부분을 생략 할 수 있음을 의미합니다. 그래서 문서가 당신이 제안한대로 작성 되었다면, 모든 것을 대괄호 안에 넣어서 RegexObject.match (string ,,)를 작성할 수 있음을 암시합니다. 또는 RegexObject.match (string, endpos) 두 번째 것을 생략하면됩니다. 그러나 당신은 할 수 없습니다. endpos 밖으로 나가면 그 앞에 쉼표를 써야합니다. 그리고 pos를 떠나면 endpos뿐만 아니라 쉼표도 빠져 나가야합니다. 그래서 그것을 명확하게 만드는 방식으로 쓰여졌습니다.

관련 문제