c# - 匹配以随机内容开头的可选模式

标签 c# .net regex

我需要在下面的句子中捕获两组,一组是,一组是optional

I want to match random optional field.

我尝试了以下方法,但没有产生预期的结果:

(I).*?(optional)?

去掉optional周围的圆专利可以正确匹配,但是因为我需要第二个匹配,所以我不能这样做。

(I).*?optional?

那么我怎样才能正确匹配这两个组呢?谢谢!

最佳答案

正则表达式的诀窍在于,您需要分组(并丢弃)导致 optional 且与 optional 不匹配的所有内容。

使用否定环视(使用 ?: 前缀,以便该组不用于捕获):

(I)(?:(?!optional).)*(optional)?.*

关于c# - 匹配以随机内容开头的可选模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15756101/

相关文章:

php - 使用 REGEX 分块 MySQL 查询

regex - 从 regexp_matches 中检索结果作为一行

Python re.search()不返回完整的组匹配

C# WinForms 自定义控件默认属性

java - 非 void 方法中缺少 return 语句编译

c# - 单一 Entity Framework 6 MySQL

c# - VB6 中的二进制序列化?

c# - 将文本(字符串值)附加到 txt 文件的每一行

c# - .NET MVC Razor 动态表单生成

.net - 将 .NET 项目从非托管项目切换到托管 ODP.NET 程序集时出现问题