负数的Java正则表达式?
我有这种模式:
Pattern.compile("T([0-9]*)");
这对于正数很好但我需要它也做负数,例如“T-1T3T44”应该有效。 或者也许使用空格而不是’T’所以它应该适用于这样的字符串:“ – 1 2 3 2 -1 6 2”。 对不起我之前没有真正使用正则表达式。所以有什么建议吗? 谢谢。
你有没有想过尝试:
"T(-?[0-9]+)"
您会注意到我也将"*"
(零或更多)更改为"+"
(一个或多个),因为""
在技术上不是一个数字:-)
Pattern.compile("T(-{0,1}(?!0)\\d+)");
请注意使用负前瞻(?!0)
来排除-0数字和以0开头的数字。
试试:
Pattern.compile("T(-?[0-9]*)");
使减号可选?
笔 – ?([0-9] *)
Pattern.compile("T-?([0-9]*)");