我正在尝试识别仅包含一个整数的字符串。即恰好连续的数字,例如“1234”(没有点,没有逗号)一个串。
所以我认为应该这样做:(这与Java String Escapes一起使用):
(\\d+){1,}
因此,“ \ d +”正确是一串连续的数字。(正确的?)
我将此表达式作为子表达式包含在“(”和“)”中,然后试图说“这些子表达式中只有一个。
这是(matcher.find())检查各种字符串的结果:(请注意,此后的正则表达式在这里“原始”-不转义Java字符串)。
Pattern:(\d+){1,}
Input String Result
1 true
XX-1234 true
do-not-match-no-integers false
do-not-match-1234-567 true
do-not-match-123-456 true
看来模式中的'1'适用于“ + \ d”字符串,而不是那些连续字符串的数目。
因为如果我将数字从1更改为4,我可以看到结果更改为以下内容:
Pattern:(\d+){4,}
Input String Result
1 false
XX-1234 true
do-not-match-no-integers false
do-not-match-1234-567 true
do-not-match-123-456 false
我在这里想念什么?出于兴趣-如果我完全取消了“(”和“)”-我会再次得到不同的结果
Pattern:\d+{4,}
Input String Result
1 true
XX-1234 true
do-not-match-no-integers false
do-not-match-1234-567 true
do-not-match-123-456 true
白衣染霜花
慕姐4208626
守着一只汪
相关分类