如何拒绝字符串";0“;Java中带正则表达式的零
我在创建正则表达式模式以拒绝字符串中的“0”值时遇到问题。 我试着用下面的方法来否定这个字符串如何拒绝字符串";0“;Java中带正则表达式的零,java,regex,Java,Regex,我在创建正则表达式模式以拒绝字符串中的“0”值时遇到问题。 我试着用下面的方法来否定这个字符串 [^!(?0)] 但我认为这是错误的。因为它还将拒绝包含零的字符串,例如 有可能只使用正则表达式来处理这个问题吗?因为使用if-else更容易 例如: “0”-无效 “0000”-无效 “10”-有效 “10000”-有效 您可以使用: ^0+$ …并对其进行验证 本质上,它从头到尾检查输入,以确保它仅由0组成。 您只需要反转验证 或者更好: !myString.matches("0+") S
[^!(?0)]
但我认为这是错误的。因为它还将拒绝包含零的字符串,例如
有可能只使用正则表达式来处理这个问题吗?因为使用if-else更容易
例如:
- “0”-无效
- “0000”-无效
- “10”-有效
- “10000”-有效
^0+$
…并对其进行验证
本质上,它从头到尾检查输入,以确保它仅由0组成。
您只需要反转验证
或者更好:
!myString.matches("0+")
String#matches
根据模式匹配整个字符串。对调用结果求反可确保只有填充整个字符串的0+
事件无效。您可以使用:
^0+$
…并对其进行验证
本质上,它从头到尾检查输入,以确保它仅由0组成。
您只需要反转验证
或者更好:
!myString.matches("0+")
String#matches
根据模式匹配整个字符串。对调用结果求反可确保填充整个字符串的0+
事件无效。如果要检查字符串是否从0
开始(即“01”
、“010”
和“00100“
都是无效字符串),您可以尝试
^(?!0).*
模式,在哪里
^ - (anchor) start of the string
(?!0) - negative look behind (not start from 0)
.* - any symbols
或(不含正则表达式)
如果要检查字符串是否不是从
0
开始的(即“01”
、“010”
和“00100”
都是无效字符串),可以尝试
^(?!0).*
模式,在哪里
^ - (anchor) start of the string
(?!0) - negative look behind (not start from 0)
.* - any symbols
或(不含正则表达式)
不能在角色类内使用组。您只能在
[]
中列出字符。请在javaString regex=“^(?!0+$)\\d+$”中尝试^(?0+$)\d+$
代码>尝试^(?!0)。*
模式我检查的部分正确。但我要找的是来自“第四鸟”的答案。Thanks@WiktorStribiżew我认为你声称的链接与我的问题不同。如果我问“如何只匹配不包含零的字符串”,那么这将是一个重复的问题。您只能在[]
中列出字符。请在javaString regex=“^(?!0+$)\\d+$”中尝试^(?0+$)\d+$
代码>尝试^(?!0)。*
模式我检查的部分正确。但我要找的是来自“第四鸟”的答案。Thanks@WiktorStribiżew我认为你声称的链接与我的问题不同。如果我问“如何只匹配不包含零的字符串”,那么这将是一个重复的问题。