2014-09-25 5 views
0

문자열의 나머지 저장하는 방법 : 45정규식 패턴 매처, 문자열

자바 코드를 숫자 만 값을

ArrayList<String> portfolioCount = new ArrayList<String>(); 
String mainText = USA (45) 
final Pattern p = Pattern.compile("\\((.*?)\\)"); 
final Matcher m = p.matcher(mainText); 
m.find();   
portfolioCount.add(m.group(1)); 

저장 숫자 값을 받고 패턴 매칭을 사용하여 미국 (45)

을 배열 목록, 내 질문에 다른 문자열 목록 (예 : 미국) 다른 배열 목록에 저장하는 방법입니다

답변

1

당신은 내다을 사용할 수 있습니다 lookbehind 일치하는 그룹의 괄호 포함하지 않기 위하여 :

ArrayList<String> countryCount = new ArrayList<String>(); 
ArrayList<String> portfolioCount = new ArrayList<String>(); 
String mainText = "USA (45)"; 
final Pattern p = Pattern.compile("(.*?)(?>\\()(\\d+)(?=\\)).*"); 
final Matcher m = p.matcher(mainText); 
m.find(); 
countryCount.add(m.group(1)); //USA 
portfolioCount.add(m.group(2)); //45 
1

그냥

[USA, 45] 

나라 이름을 저장하고 별도의 두 가지로 계산하기

ArrayList<String> portfolioCount = new ArrayList<String>(); 
String mainText = "USA (45)"; 
final Pattern p = Pattern.compile("(\\S+)\\s+\\((.*?)\\)"); 
final Matcher m = p.matcher(mainText); 
while(m.find()){   
portfolioCount.add(m.group(1)); 
portfolioCount.add(m.group(2)); 
System.out.println(portfolioCount); 
} 

출력, 다른 그룹에 내 번호() 전에 일부를 캡처 목록,

,

출력 :

[USA] 
[45]