java - 验证所有场景的正则表达式
问题描述
我正在用java编写一个匹配以下内容但不匹配无效字符串的正则表达式。我无法正确过滤它,使其仅匹配有效列表而不匹配无效列表。
这是我的正则表达式-(?!\!)([\(\)XSAa\\\#\+\-\s\.\!])+)
有效字符串 -
"A\\#A\\#A\\#","+\#\#\#","(\\#\\#\\#) \\#\\#\\#-\\# \\#\\#\\#“,“\#\#\#。\#\#\#。\#\#\#\#“,“!\#\#“,“X-\#\ #\#\#","\#\#\#\#\#-SSSS","啊啊啊!!"`
在这里它不匹配!\\#\\#
,因为我已经说过它不应该包含!
无效输入 -!A!\\#!A!\\#!A!\\#, !X, A#A#A#, !a!a!a!a!a
但不幸A#A#A#
的是,它匹配失败的场景。
有人可以帮我弄这个吗?
解决方案
该注释的末尾有一个不匹配的括号,但除此之外它只是一个否定的前瞻(因此它不以“!”开头),后跟字符类中的任意数量的字符。其中包括“A”和“#”,因此这些字符的任何序列都将被接受。我不知道你真正想要匹配什么,但这就是为什么 A#A#A# 这样做的解释。
推荐阅读
- html - 如何将 calc() 和 var() 用于具有动态值的 CSS 按钮?
- kotlin - micronaut 不允许从同一基类(实现接口)派生的两个控制器向路由器注册
- javascript - 使用 javascript/jquery 触发 onchange 事件时更新 DOM 中的哈希值
- html - 如何将内容保留在容器中,但在 CSS 中扩展其背景全宽?
- c++ - graphics.h 没有打开 BGI 可执行文件
- javascript - 每次在 ng-repeat 中传递不同的数组
- laravel - Facebook 营销 API 见解(目标网址)
- reactjs - 单页应用程序中的服务器数据更改
- ios - iOS - 如何将渐变颜色应用于 UICollectionViewCell backgroundView?
- javascript - 异步/等待 jquery 动画