문자열이있는 경우Java split 정규 표현식
setting=value
어떻게 '='을 제거하고이를 '설정'과 '값'을 포함하는 두 개의 별도 문자열로 변환 할 수 있습니까?
대단히 감사합니다.
문자열이있는 경우Java split 정규 표현식
setting=value
어떻게 '='을 제거하고이를 '설정'과 '값'을 포함하는 두 개의 별도 문자열로 변환 할 수 있습니까?
대단히 감사합니다.
마음에 두 가지 옵션이 있습니다.
첫 번째 split()
는이야 String
=
에 :
Pattern p = Pattern.compile("(.*?)=(.*)");
Matcher m = p.matcher(s);
if (m.matches()) {
String name = m.group(1);
String value = m.group(2);
}
두 번째는 당신에게 더 많은 힘을 준다 : 두 번째는 String
구문 분석에 직접 정규 표현식에 사용
String[] pieces = s.split("=", 2);
String name = pieces[0];
String value = pieces.length > 1 ? pieces[1] : null;
. 예를 들어, 패턴을 다음과 같이 변경하면 공백을 자동으로 잃을 수 있습니다.
Pattern p = Pattern.compile("\\s*(.*?)\\s*=\\s*(.*)\\s*");
당신은 이것에 대한 정규 표현식을하지 않아도, 단지 수행
String str = "setting=value";
String[] split = str.split("=");
// str[0] == "setting", str[1] == "value"
당신은 그것의 =
너무 가질 수 limit
value
경우 설정할 수 있습니다; javadoc
그렇다고 정규 표현식을 사용하고 있습니다. 예를 들어,'? '로 분리하고 싶다면'str.split ("?")'만 쓸 수는 없습니다. 당신은 그것을'str.split ("\\?")'로 이스케이프 처리해야합니다. – polygenelubricants
아, 그렇습니다. 자바의 String.split은 정규 표현식을 사용합니다. 대부분의 언어는 문자열로 분리됩니다. –