c# - 如何编写正则表达式来匹配包含 XYZ 但不包含 ABC 的文本?

标签 c# regex

我想编写一个正则表达式,如果字符串包含 XYZ 但在它之前的某处不包含 ABC,则匹配该正则表达式。所以“blah XYZ blah”应该匹配,但“blah ABC blah XYZ blah”不应该匹配。

有什么想法吗?特别是我正在用 c# 编写正则表达式,以防该语法有任何特定内容。

我想我可以使用负向后视,但以前没用过...

谢谢!

更新:我需要一个正则表达式,因为我无法修改代码,只能修改一些配置。

更新:已更改,因为我实际上只需要检查 ABC 是否出现在 XYZ 之前,我不需要检查它是否出现在 XYZ 之后。

最佳答案

^(?:(?<!ABC).)*XYZ

适合我的小测试集。

关于c# - 如何编写正则表达式来匹配包含 XYZ 但不包含 ABC 的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/447943/

相关文章:

C:检测URL中的三级域名

javascript - 用于获取 [bbcode] 内文本的正则表达式

css - 使用 vi,如何删除所有包含 [searchterm] 的行?

c# - 使用 ASP.NET MVC 实现全局化

c# - Unity UI 文本框动态高度。如何使其根据文本数量扩展?

c# - 在 AD 帐户的数据库中存储 SID 或用户名?

c# - 哪个 LINQ 查询更有效?

c# - 在 PHP 中执行 C# 应用程序

regex - 使用正则表达式强制单元格验证?

regex - R 中的计数模式匹配