2016-10-06 2 views
1

주어진 문자열의 주어진 하위 문자열을 ""으로 바꾸기 위해 몇 가지 예를 살펴 보았지만 결과를 얻을 수 없었습니다. 그래서,주어진 문자열에서 지정된 부분 문자열을 ""(으)로 바꾸는 방법은 무엇입니까?

/image/journal/article?img_id=24810&t=1475128689597 

내가라도 좋습니다 ""이 하위 문자열 다를 수 있습니다 img_idt의 값을 대체 할 -이 : 문자열 게시하는 데 시간이 너무 오래이며 다음과 하위 문자열을 포함 나는 정규 표현식을 사용해야 할 것이다. 다음 코드로 시도해 보았습니다. -

String regex="^/image/journal/article?img_id=([0-9])*&t=([0-9])*$"; 
content=content.replace(regex,""); 

여기서 내용은 원래 지정된 문자열입니다. 그러나이 코드는 실제로 content의 내용을 대체하지 않습니다. 제발 도와주세요. 도움이된다면. 사전에 .thanx. 당신이 그렇게 같은 두 개의 인용과 URL의 문자열을 교체하려는 경우

+0

1. 아마 정규식이 필요하지 않습니다. 2. replace()는 정규식을 입력으로 사용하지 않는다. – TheLostMind

+0

당신은'.replaceAll' 메소드를 사용할 수있다. 그러나 패턴 클래스를 사용하여 정규 표현식을 컴파일하고이 클래스 메소드를 호출하여 표현식을 처리 할 것을 권한다. –

+0

정규식이 필요합니다. 사용 방법을 지정하십시오. –

답변

2

사용 정규식 좋은 방법 replaceAll 작품

content=content.replaceAll("[0-9]*",""); 

코드

String content="/image/journal/article?img_id=24810&t=1475128689597"; 
content=content.replaceAll("[0-9]*",""); 
System.out.println(content); 

출력 :

/image/journal/article?img_id=&t= 

업데이트 : 간단 수 있습니다 좀 덜 편안하지만 쉬운

String content="sas/image/journal/article?img_id=24810&t=1475128689597"; 
    content=content.replaceAll("\\/image.*",""); 
    System.out.println(content); 

출력 :

sas 

t=1475128689597/?tag=343sdds 후 더 뭔가이며 다음 아래 사용 ?tag=343sdds을 유지하려면

String content="sas/image/journal/article?img_id=24810&t=1475128689597/?tag=343sdds"; 
    content=content.replaceAll("(\\/image.*[0-9]+[\\/])",""); 
    System.out.println(content); 
    } 

출력 :

sas?tag=343sdds 
+2

OP는 전체 이미지를 제거하려고합니다.'변수 부분뿐만 아니라 게시하지 않은 큰 문자열의 부분 문자열. –

+0

@MarkoTopolnik 죄송하지만 뭔가 다른 생각, 내 대답을 편집하자. 고마워 친구 –

0

: 그럼 당신은 귀하의 콘텐츠 할당 내부 탈출 따옴표 \"\"를 추가 할 필요가

/image/journal/article?img_id=""&t=""

만보고 당신의 정규식을 편집 숫자에 대한, 그리고 변경 완전히 대체하기에 :

content=content.replaceAll(regex,"\"\""); 
0

당신은 "" 또는 (원하는 문자열로 문자열을 대체 할 Java regex Utility을 사용할 수 있습니다 리터럴), 주어진 패턴 (정규식)을 기반으로 다음과 같습니다 :

String content = "ALPHA_/image/journal/article?img_id=24810&t=1475128689597_BRAVO"; 
String regex = "\\/image\\/journal\\/article\\?img_id=\\d+&t=\\d+"; 
Pattern pattern = Pattern.compile(regex); 

Matcher matcher = pattern.matcher(content); 
if (matcher.find()) { 
    String replacement = matcher.replaceAll("PK"); 
    System.out.println(replacement); // Will print ALPHA_PK_BRAVO 
} 
관련 문제