끔찍하게 구분 된 ID 문자열이 표시됩니다. 각 id는 왼쪽에 공백 ('')으로 둘러싸여 있고 오른쪽에 캐리지 리턴 ('\ r')이 있습니다. 이 문자열을 분리하고 자바 스크립트에서 모든 ID를 다시 가져 오려고합니다. 예를 들어 sSTUFF r에 일치하는 항목의 정규식
: ' hey\r my\r name\r is\r'
이 ['hey', 'my', 'name', 'is']
의 배열을 반환해야는 지금까지 시도 :
str.split(/ (.+)\r/g)
str.split(/(?:\s)(.+)(?:\r)/)
str.split(/\s(.+?=\r)/)
모두 아무 소용 뿐이다. 나는 str.split(/(?:\s)(.+)(?:\r)/)
와 가장 가까운 것을 얻었지만, 나에게 준다 : ['', 'hey', '', 'my', '', 'name', '', 'is', '']
. 빈 문자열과 일치하는 항목은 무엇입니까?
이 부분과 일치하는 정규식은 무엇입니까?
편집 :
이드 다른 공백 문자를 가질 수 있습니다, 그래서 이것은 유효한 ID입니다 : 123 \ T234 \ 없음. 'abc \ r 123 \ n456 \ t \ r'은 (는) [ 'abc', '123 \ n456 \ t']를 반환합니다.
고마워요!
입니다var parts = str.replace(/^\s+|\s+$/g, '').split(/\s+/)
의 선행 및 후행 공백 문자를 제거하고 단지 내부 공백 문자에 분할 (그리고 그들 모두를 소비)에 대해 어떻게
것이 ID가 다른 공백 문자를 가질 수있는 것처럼 캡처 그룹 1
에있을 것입니다, 그래서 이것은이다 올바른 ID : 123 \ t234 \ n. str = '안녕하세요 \ r 이름 \ r은 \ ndsfs \ t \ r입니다. \ ndsfs \ t의 id를 돌려줘야합니다. – jreptak
그런 다음'\ s'를'[분리 할 공백 문자 목록 on]'또는 단지'\ r'('\ r'과 공백). –
네, 그냥 st : replace (/^\ + | \ r + $/g, '') .split (/ \ r + /)'로 받으십시오. 난 그냥 그것을 하나의 정규식에서 어떻게 할 생각을 시도하여 overcomplicating 것 같아요 – jreptak