regex - 正则表达式前瞻和“字符串结束”不起作用
问题描述
我想使用以下正则表达式将字符串与前瞻匹配:/A20.(?!4)/
. 此字符串应匹配:
A20.1
A20.2
A20.3
A20.41
A20.42
A20.400
...
唯一不应该匹配的 A20* 字符串是
A20.4
它工作正常,期待 A20.41 或 A20.42 .. 如何终止正则表达式?我试过/A20.(?!4)$/
了,但是没有用。
解决方案
您可以使用否定字符类,例如[^4]
,这意味着“匹配除四个之外的所有内容”。但我认为你仍然只想匹配数字,所以我只是使用字符类[123567890]
(注意不包括 4)。
所以模式将是:
A20\.[123567890]
此外,您使用.
(dot) 来匹配点,但点是特殊的正则表达式字符,因此您需要对其进行转义以按字面意思对待它:\.
推荐阅读
- vb.net - 在文本框中一次打印一个单词(Visual Basic)
- c++ - cpp中函数的输入参数中的'[]'是什么意思
- php - 来自用户输入 php 的链表
- arrays - 用 N 个元素确定 M 组中元素的最大总和
- javascript - 像 onload 和 onLocationfound 这样的事件处理函数不起作用 函数没有被执行
- javascript - 无法将 useState 输出到导入的图表
- c - 为什么我不能用指针初始化数组?
- google-app-engine - 如何在 Google App Engine 上部署 Ktor 应用程序?
- mysql - MySQL 抛出“db_name.CTE 不存在”的错误
- java - Netty/Armeria 处理程序方法中的 Bootstrap Hibernate SessionFactory 因 ClassNotFoundException 而失败