regex - 正则表达式:在引号内查找第一次出现
问题描述
我有这样的多行文字:
sometext "F1" "some other text;" "some other text;"
sometext "1" "some other text;"
sometext "`" "some other text;"
sometext "Tab" "some other text;"
sometext "CapsLock" "some other text;" "some other text;"
sometext "Shift" "some other text;"
sometext "\" "some other text;"
sometext "K" "some other text;"
sometext "ins" "some other text;"
sometext "downarrow" "some other text;" "some other text;"
sometext "Num Lock" "some other text;"
sometext "num5" "some other text;"
sometext "numenter" "some other text;"
我需要在每行的第一个引号内获取值。我已经尝试过"(.*?)"
,但它在“”中找到了每个值。
解决方案
要在双引号的第一次出现中获取值,您可以添加一个锚来断言行的开头,^
然后使用否定字符类 [^"]*
匹配不是 " 。您的匹配将在第一个捕获组中:
或者您也可以使用否定字符类来捕获双引号之间的内容:
推荐阅读
- sql - 计算每行数据库的 Biz 天数
- php - ACF 中继器字段返回包含中继器计数的字符串
- google-bigquery - 如何在 Google BigQuery 中操作 CURRENT_DATE()?
- azure-synapse - 如何在 Azure Synapse Analytics 中执行并发流式更新插入
- javascript - 编译后 Babel 意外令牌导出
- c# - 在排序的 4 位位图中移动像素
- php - 如何使用 php Blade 显示 SQL 表的特定数据
- sql - 没有聚合的 TSQL Dynamic Pivot 函数
- php - 如何通过验证在laravel中上传pdf/doc文件
- scala - 从 Squeryl 迁移时使用 Slick 3.0 事务