2016-07-14 2 views
0

나는 각 문자열에 문자가 들어있는 문자열 집합을 가지고 있는데, 숫자는 &이다. 문자열 앞에 숫자 &이 나타날 때까지 문자열의 내용을 추출하고 싶습니다. 다음은 예입니다.자바에서 문자가 처음 나타난 후 문자열의 내용을 제거하는 방법은 무엇입니까?

Axis-1.4.5 
Limo_9.5.6R 
Dent-ist-0C.4E 
Log4M-1.2.0 
Hello-World-1.0 

이들은 내 문자열입니다. 내가 내 출력으로이에서 원하는 것은 :

Axis 
Limo 
Dent-ist 
Log4M 
Hello-World 

나는 패턴 완전히 대체 ("\ d 개", "")를 사용 & 완전히 대체하기를 ("[- +^:., _]", " ")을 사용하여 숫자와 기호를 제거하십시오. 그러나이 내 outpus은 내가 가진 무엇으로 :

Axis 
LimoR 
DentistCE 
LogM 
HelloWorld 

누군가가 나에게이 시나리오 제대로 문자열을 트림하는 방법을 알려 주시기 바랍니다 수 있을까요?

+0

"Dentist"가 실제로 "Dent-ist"이어야합니까? (또는 "Hello-World"가 실제로 "HelloWorld"가되어야합니까?) – smarx

+0

치과 의사는 Dent-ist 여야합니다. 게시물에서 변경했습니다. – SRS

+0

기본적으로, 오는 문자 사이에 오는 기호와 번호 앞의 기호가 숫자에 이어지는 문자와 숫자 뒤에 오는 문자를 기대합니다. – SRS

답변

2

나는 replaceFirst("[-+.^:,_]\d.*", "")이 원하는대로해야한다고 생각합니다.

"a '기호'다음에 숫자와 그 뒤에 오는 모든 문자가 표시 될 수 있습니다."

+1

원래 요청이 주어지면 ' d. * "는 더 나은 패턴입니다. – bezmax

+0

@bezmax 그러면 "Log4M-1.2.0"이 "Lo"로 바뀌고 원하는 출력은 "Log4M"이됩니다. 문제의 설명은 "숫자와 선행 기호"였다. 선들 사이를 읽으면, 여기서 "기호"는 하이픈, 밑줄 등을 의미한다고 생각합니다. 원래 질문자가 사용한 문자 클래스를 사용했습니다. – smarx

관련 문제