1
아래와 같은 문자열이있는 경우 어떻게해야합니까? 123 (8752)?특정 지점의 문자열 분석
예 :
Testversion v1.23 (8752), beta v1.02 (458)
내가 정규식으로 노력하고 있지만 지금까지 운이 오전, 이것은 단지 1.23 제공 :
이String result = input.replaceAll("[^\\d.]", "");
아래와 같은 문자열이있는 경우 어떻게해야합니까? 123 (8752)?특정 지점의 문자열 분석
예 :
Testversion v1.23 (8752), beta v1.02 (458)
내가 정규식으로 노력하고 있지만 지금까지 운이 오전, 이것은 단지 1.23 제공 :
이String result = input.replaceAll("[^\\d.]", "");
사용할 수 .*?(v\\d+\\.\\d+\\s*\\(\\d+\\)).*
input.replaceFirst(".*?(v\\d+\\.\\d+\\s*\\(\\d+\\)).*", "$1"); //v1.23 (8752)
설명
.*?(v\\d+\\.\\d+\\s*\\(\\d+\\)).*
: 가능한 한 적은
(v\\d+\\.\\d+\\s*\\(\\d+\\))
로 .*?
일치 아무것도 : 그룹
v\\d+\\.\\d+
캡처 (
시작 : 경기 v
, \\d+
하나 이상의 숫자 .
문자를 \\d+
\\s*\\(\\d+\\)
: \\s*
0 개 이상의 공백이 다음 (
하나 이상의 숫자 )
).*
:. 그룹,
이것은 완벽합니다. – Simon
PCRE는 \ D + \ '이 될 것입니다 라인의 끝까지
.*
일치 아무것도 캡처의 끝 \ d + \ (\ d + \)', 아마도 당신의 솔루션을 찾을 수 있습니다. 슬래시도 두 배로 늘릴 필요가 있습니다. 내 의견에는 \ d, \\ d를 써야합니다. –안녕하세요, replaceAll ("\\ d + \\ \\ (\\ d + \\)", "); ? 불행히도 같은 결과물을 제공합니다. – Simon
죄송합니다. 자바 버전으로 테스트 할 수 없으므로 PHP로 시도하고 있습니다 ^^ Cant가 지금 당장 행운을 빌어 요! 아니면 replaceAll ("\\ d + \\. \\ (\\ d + \\)", ""); (이중 괄호 이스케이프) –