Java正则表达式检查 "=number",例如 "=5455"?

标签 java regex

我想检查与格式“=number”匹配的字符串,例如“=5455”。

只要第一个字符是“=”,其子序列是[0-9]中的任意数字(不允许使用点),就会弹出“正确”信息。

    if(str.matches("^[=][0-9]+")){
        Window.alert("correct");
        }

那么,这个 ^[=][0-9]+ 是正确的吗?

如果不正确,你能提供正确的解决方案吗?

如果是正确的,那么你能找到更好的解决方案吗?

最佳答案

我不是正则表达式专家,比我更有知识的人可能会纠正这个答案,但是:

  • 我认为使用 [=] 而不是简单地使用 = 没有意义 - [...] block 是用来声明多项选择,为什么要声明一个字符的多项选择?
  • 我认为您不需要使用 ^ (如果您的输入字符串在 = 之前包含任何字符,则无论如何它都不会匹配)。我不确定它的存在是否会使您的正则表达式更快、更慢或没有任何效果。

总之,我会使用 =[0-9]+

关于Java正则表达式检查 "=number",例如 "=5455"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17828820/

相关文章:

java - Log4j2 回滚后始终写入同一个文件

regex - 为什么匹配运算符的 "match-only-once"优化仅适用于 "?"分隔符?

php - 是否可以在正则表达式中对两个单独的环视/零宽度断言(即lookbehind/look-behind)进行“与”操作?

java - 在 Oracle 中调试存储过程

正则表达式查找数字和单词之间缺少空格的位置

正则表达式替换 : '[A-Z]' ' to [A-Z ]' - I can' t preserve the letter in in the string

用于在电子邮件地址中查找点的 Python 正则表达式

java - XML 数据到 PostgreSQL 数据库

Java 大小写切换器

java - map 可以使用 java.text.Collat​​or 吗?