.net - 正则表达式 - 不包含除 end 之外的某些字符
问题描述
我需要匹配任何以“&”结尾但中间不包含“,”或“&”的行。
a b c &
a, b, c, &
a & b, c &
a & b
我能够通过使用获得部分成功:
^(?!.*,).*&.*$
我得到了两个:
a b c &
a & b
所以我试过了
^(?!.*(,|&)).*&.*$
而且我无法找到任何匹配项。我怎样才能修改我的正则表达式,所以我只能得到a b c &
?我正在使用.NET
解决方案
似乎你应该通过使用否定字符类来获得你需要的东西,例如
^[^,&]*&\s*$
使用多行标志。
如果您不想按照 revo 的建议允许尾随空格,则可以替换\s*
为。\r?
如果您正在使用多行文本(而不是逐行测试),您可能还希望将换行符添加到否定字符类 ( [^,&\n]
) 以避免重叠匹配。
推荐阅读
- python - 如何在熊猫数据框中添加具有重复值的列?
- php - 使用 PhpSpreadsheet 在单元格中插入 HTML 代码
- python - “utf-8-sig”是否适合解码 UTF-8 和 UTF-8 BOM?
- r - 用列表和数据框聚合,函数如何知道聚合级别?
- tomcat8 - AWS ALB 很多 504 响应代码
- javascript - 设置新状态不会使用 React Hooks 重新渲染组件
- javascript - 如何使用 javascript 在 3 天内获得 ISO 时间?
- javascript - 我如何读取文件夹节点 js 高级中的文件?
- c# - 成对组合列表中的项目
- php - php:在未定义的变量上回显 isset 不返回任何内容而不是零