사용자는 임의의 문자열 문자를 입력하고 허용되는 특수 문자는 *로 문자열 시작 또는 끝에 배치 할 수 있습니다. 예를 들어시작 또는 끝에서만 *를 유지할 Java 정규식
는 :
*hello* -> *hello
*h*ello -> *hello
h*llo* -> hello*
hello** -> hello*
**hell**o** -> *hello
나는 그렇게 할 수있는 정규식을 좋아합니다.
사용자는 임의의 문자열 문자를 입력하고 허용되는 특수 문자는 *로 문자열 시작 또는 끝에 배치 할 수 있습니다. 예를 들어시작 또는 끝에서만 *를 유지할 Java 정규식
는 :
*hello* -> *hello
*h*ello -> *hello
h*llo* -> hello*
hello** -> hello*
**hell**o** -> *hello
나는 그렇게 할 수있는 정규식을 좋아합니다.
이 하나가 일치합니다 정규식 아래 어떻게 든
String s="*he**llo*";//anything
boolean st=(s.startsWith("*"));
boolean et=(s.endsWith("*"));
String ns=s.replaceAll("\\*+","");
ns=(st)?("*"+ns):(et)?(ns+"*"):ns;
작동 모든 시작 또는 끝이 아니었다 *
. 일치하는 *
을 Null 값으로 바꿉니다.
정규식 :
이(?<!^)\*(?!$)
자바 정규식 것,
"(?<!^)\\*(?!$)"
교체 문자열 :
Empty string
자바 코드는 것,
String s="*he*****llo*";
String out=s.replaceAll("(?<!^)\\*(?!$)","");
System.out.println(out);
어이, *의 공백을 대체합니다. –
아니요, 아니요. ideone 링크 동생을 참조하십시오. –
새 문자열은 문자열의 시작과 끝 모두에 *를 유지합니다. –
당신은 *'대체 할 않았다'null 값을 가진 문자열 내부에? –
@ Mike'Pomax'Kamermans 아무것도 아니야, 나는 막 붙어있다. –
시작하기 전에 멈출 수 없습니다. 자바 스크립트 및 정규 표현식에 대해 배울 수있는 전체적인 Google 세상이 있습니다. 그것을 탐색 한 다음 다시 한번 해보고, 몇 가지 시도를하고, 조금 배웠습니다. –