2017-03-29 1 views
0

단어/문자열을 구분하는 한 개의 공백을 남기고 모든 문자를 캡처하는 하나의 그룹으로 각 행을 일치시킬 수 있기를 원합니다.Regex help : 모든 문자를 일치시킬 수 있지만 문자열 사이에 공백을 하나 남겨 두는 방법은 무엇입니까?

https://regex101.com/r/IXMVci/3

+0

을 추가했다. –

+0

잠깐, _capture_하거나 _replace_하고 싶습니다. 거기에없는 것을 포착 할 수는 없습니다. 두 값 사이에 5 개의 공백이 있으면 캡쳐에 포함 시키거나 파트를 개별적으로 캡처해야합니다 (내 대답 참조). – Psi

답변

0

당신은 캡처 전체 문자열 사이에 어떤 문자를 배제 할 수 없다, 계속 -

는 지금까지, 나는 2 열 과거를 얻을 수없는 것 한 것입니다 같은 그룹에있는 다음 문자와 일치합니다.

([0-9]+|[A-Za-z0-9]+(?:[ -_][A-Za-z]+)+|[A-Za-z0-9]+|-) 

이 샘플 데이터의 모든 열을 선택한다 : 당신이 이 할 수있는 것은, 개별적으로 부품을 일치합니다. 하위 그룹을 사용하여 필자는 공백 끝에 공백이 매치되지 않도록했습니다.

그러나 일부 열은 하나의 공백으로 구분 된 후에 잠재적 공백 뒤에있는 열의 일부만 문자 (숫자 없음)로 제한했습니다.

가 첫 번째 열 (만 1 정규식 뒤에있는) 분리하기 위해, 나는 당신이 일치 할 텍스트 당신이 당신의 질문에 직접 시도 표현의 예를 기입하십시오 최초의 대안

+0

아 좋아, 나는 당신이 정규식으로 원하는만큼 구체적 일 수 있다고 생각했다. 와우, 멋지다, 거의 완벽하지만 두 번째 열의 첫 번째 문자는 다른 문자와 구분됩니다. –

+0

피들에서 정규식을 테스트하고 일치 항목을 확인합니다. 두 번째 열의 첫 번째 문자가 분리되어 있지 않습니다. 내 생각에, 당신의 구현은 대안을 약간 다르게 처리합니다. 그러나 사용중인 언어에 대한 정보를 게시하지 않았기 때문에 귀하가 제공 한 바이올린에 최적화되었습니다. – Psi

관련 문제