2012-02-29 2 views
5

나는이 패턴이 있습니다음수에 대한 Java 정규식?

Pattern.compile("T([0-9]*)");

양수를 위해 잘 작동하지만 난 그것을 작동합니다 예 "T-1T3T44"에 대한 음수도 할 필요가있다. 또는 'T'대신에 공백을 사용하면 다음과 같은 문자열에 사용할 수 있습니다. "- 1 2 3 2 -1 6 2". 미안 정규 표현식을 사용하지 못했습니다. 제안이 있습니까? 감사.

+0

HTTP ://regexlib.com/DisplayPatterns.aspx?cattabindex=2&categoryId=3 – vulkanino

+0

죄송합니다. T 대신 공백으로 내 대답을 편집했습니다. – Fofole

답변

5

당신이하려고 생각 유무 :

"T(-?[0-9]+)" 

당신은 내가 또한 "" 이후 "+" (하나 이상)에 "*" (0 개 이상)를 변경했습니다 알 수는 기술적으로 번호가 아닙니다 -)

+1

-0과 같이 허용되지 않으므로 정확하지 않습니다. 0은 부정적 일 수 없습니다. 그것을 극복하는 방법을 보려면 내 대답을 참조하십시오. – Lukasz

+0

@Fofole : 예, 정규식의 공백으로 바꾸십시오. 문제가 없습니다. Lukasz, 네, 음수 0을 허용하지 않으려면 좀 더 복잡한 것이 필요합니다. 개인적으로, 나는 항문 보유 단계에 접근하고 있다고 생각하지만 귀하의 견해를 보았습니다 :-) – paxdiablo

+0

고마워요. 이것은 이해하기 쉽고 실제로 문자열을 올바르게 만들 때 -0을 검사 할 필요가 없으므로 이것을 허용 된 대답으로 표시합니다. 모두가 행복하게되기를 바랍니다. – Fofole

1
Pattern.compile("T-?([0-9]*)"); 
3

로 시도해보십시오

Pattern.compile("T(-?[0-9]*)"); 
1

M ake 마이너스 옵션 일 수 있습니까?

T - ([0-9] *)

9
Pattern.compile("T(-{0,1}(?!0)\\d+)"); 

제외 부정적인보기 미리 (?!0)의 사용을 유의하시기 바랍니다 -0 번호와 0으로 시작 숫자