regex - 正则表达式:在双引号之间查找分号
问题描述
我只是从正则表达式开始。我需要找到文本中的所有情况,其中双引号之间的字符串中有分号。所以我正在寻找这样的案例
"something;something"
"something ; something"
"something; something"
"something ;something"
我找到了在双引号之间查找字符串的代码:
(["'])(?:(?=(\\?))\2.)*?\1
你能帮我修改它,以便我找到上面提到的案例吗?
解决方案
您可以使用否定字符类,您可以在其中添加不想匹配的内容。如果字符串中只能有 1 个分号,那么您也可以将其添加到字符类中,否则您可以[^"\r\n]*
在可能出现多次的地方使用;
"([^"\r\n;]*;[^";\r\n]*)"
那会匹配
"
从字面上匹配(
捕获组[^"\r\n;]*
匹配 0+ 次而不是"
, 换行符或分号;
从字面上匹配[^"\r\n;]*
匹配 0+ 次而不是"
, 换行符或分号
)
关闭捕获组"
从字面上匹配
您的价值在第一个捕获组中。
如果您不想只匹配双引号之间的分号,您可以在前面添加一个否定的前瞻:
(?!";")"([^"\r\n;]*;[^";\r\n]*)"
推荐阅读
- python - 将 DateFormatter 与 pandas 一起使用时出现年份错误
- unity3d - 统一的汽车运动
- sql - 在 Oracle 中使用增强的聚合报告功能解决问题
- vue.js - 在组件中访问具有 Vuex 功能的 getter
- javascript - 当我尝试将 JSON 发送到 Spring 时,不支持内容类型 'application/json;charset=UTF-8'
- java - Javafx 只启动一个线程,即使按钮被点击多次
- sql-server - SQL Server 2017 - 如何在动态 SQL 中的 SELECT 中传递参数
- spring-boot - Spring Boot web server / RPC / CorDapp - 让它工作
- php - 我想使用 PHP 将 MySQLi 表信息提取到 HTML 表中,但 mysqli_fetch_array 查询返回 null
- https - 当尝试使用 https 模块访问端点时,“未定义承诺”