컨텍스트 : 너무 길고 html 테이블의 열 머리글로 사용되는 문자열을 분할해야합니다. 이러한 문자열은 변수 이름이므로 공백이 없습니다.정규식을 사용하여 유연하게 문자열을 분할합니다.
CSSmax-width
속성을 사용하면 문자열이 고정 된 위치에서 분리되어 점에 사용하지 않거나 문자열에 _
의 문자를 사용하지 않습니다.
예를 들어, 내가이 문자열이 있다고 가정
this.is.a.long.string.indeed.yeah.well.you.know
를 구분자로 점을 사용하여, 나는 많은, 여러 가지 방법으로 나눌 수 있습니다. 그러나 나는 이러한 원칙을 제기 :
- 모든 문자열은 12 자 이상이어야합니다 이하
- 구분 [._]하지 문자열의 시작 부분, 끝 부분에 있어야
- 문자열의 수는해야 최소한이어야 함
- 여러 솔루션이있는 경우 가장 유사한 하위 문자열 길이를 갖는 솔루션이 선호됩니다.
나는 R을 사용하여 프로그래밍 방식으로이 작업을 수행 할 수 있지만 정규 표현식을 사용하여 가능한지 여부를 확인하기 위해 정규 표현식 마법사를 사용하고 있습니다.
내가 지금까지 무엇을 가지고 :
정규식 : .{1,12}(_|\b|\Z)
결과 : 그것은 어떤 구분없이 문자의 긴 순서가있는 경우를 제외하고 잘 작동 this.is.a. | long.string. | indeed.yeah. | well.you. | know
. this example on regex101.com을 참조하십시오.
가능한 한 구분 기호가 사용되며 구분 기호없이 12 자보다 긴 시퀀스가있는 경우 대체 분할이 발생하는 것이 이상적입니다.
단어 래퍼 기능 (R을 모르겠다)이있는 경우 점을 공백으로 대체하고 함수가 감싸고 공백을 점으로 바꾸도록 할 수 있습니다. – yacc
'strwrap'은 단어 래퍼 함수입니다. – rawr
이 제안에 감사드립니다. 좋은 결과를 얻었으므로 구분 기호없이 12 자 이상의 연속열을 분할하는 데 약간의 작업이 필요했습니다. –