R의 strapplyc를 사용하여 하나의 특정 조건 세트와 일치하는 문자열의 다른 부분을 선택했습니다. 이 부분은 필요한 부분이 두 가지 방법 중 하나로 정의 될 수있는 문자열 부분을 찾을 때까지 성공적으로 작동했습니다. 여기 strapply 내에서 정규식 OR 문을 작성하는 방법
은 자유롭게 \의 t를 뿌리고되는 문자열의 예입니다\t\t\tsome words here\t\t\tDefect: some more words here Action: more words
나는 결함 사이에있는 텍스트 캡처 strapply 문을 작성할 수 있습니다와 액션의 시작 :
strapplyc(record[i], "Defect:(.*?)Action")
을
결함과 조치 중 선택된 텍스트를 선택하고 선택합니다. 어떤 경우에는 문자열에 액션 섹션이 없으므로 다음 코드를 사용하여 이러한 경우를 캡처합니다. 내가 할 노력 해왔다 무엇
strapplyc(record[i], "Defect:(.*?)$")
중 하나가 액션으로 끝나는, 또는 문자열의 끝 ($ 사용)하는 텍스트를 캡처합니다.
계속 실패하는 비트입니다. 두 옵션 중 아무 것도 반환하지 않습니다. 여기에 내 오류 코드가 있습니다 :
strapplyc(record[i], "Defect:(.*?)Action|$")
내가 잘못 가고있는 어떤 생각이든, 더 나은 해결책이 많이 주어질 것입니다.
그룹 안에 교대를 넣어야합니다. 그렇지 않으면 첫 번째 대안은 '결함 : (. *?) 액션'이고 두 번째는'$'입니다. '결함 : (. *?) (?: Action | $)'으로 다시 쓸 수 있습니다. regex의보다 효율적인 버전은'Defect : ((? : [^ A] | A (?! ction)) *)')' –
''Defect :'가 한 줄에 하나씩있는 경우, 그리고 Action : :'gsub (*. * Defect : | Action. * "," ", x)'를 사용하면'Action'을 빠뜨릴 수 있습니다. –