作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正则表达式
[a-zA-Z][a-z]
我必须更改此正则表达式,以便正则表达式不接受以“de”、“DE”、“dE”和“De”开头的字符串。我无法使用后视或前视,因为我的系统不支持是吗?
最佳答案
有一个没有前瞻或后瞻的解决方案,但您需要能够使用组。
其想法是创建一种“蜜 jar ”,它将匹配您的负面结果并仅保留您感兴趣的结果。
在你的情况下,会写:
[dD][eE].*|(<your-regex>)
如果命题是de<anything>
(此处不区分大小写),它将匹配,但 group(1) 将是 null
.
另一方面,例如匹配 diZ 将匹配不匹配 or 之前的内容,因此会落入 group(1)
中。 .
最后,如果命题不是以 de
开头并且与您的正则表达式不匹配,那么,根本不会有任何组。
如果您需要确保您的命题与提供的整个字符串相匹配,您可以这样更新正则表达式:
^(?:[dD][eE].*|(<your-regex>))$
请注意?:
不是任何类型的前瞻,它用于将组标记为非捕获,以便 <your-regex>
仍会被 group(1)
捕获(否则会变成group(2)
,并且从性能角度来看,捕获一个组并不总是一个透明的操作)。
关于正则表达式 - 如何防止任何以 "de"开头但不能使用前视或后视的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65121216/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!