Skip to main content
 首页 » 编程设计

c#之用于捕获介于 = 和 ; 之间的单词的正则表达式

2024年02月04日34kenshinobiy

我想从以下内容中选择word2:

word2;word3 

word2 位于 ; 和行首之间,除非中间有 =。在那种情况下,我想从 = 而不是行的开头 像 word2 来自

word1=word2;word3 

我试过使用这个正则表达式

(?<=\=|^).*?(?=;) 

从中选择word2

word2;word3 

还有来自

的整个 word1=word2
word1=word2;word3 

请您参考如下方法:

您可以使用可选组来检查后跟等号的单词并捕获第一个捕获组中的值:

^(?:\w+=)?(\w+); 

解释

  • ^ 字符串开始
  • (?:\w+=)? 可选的非捕获组匹配 1+ 个单词字符后跟 =
  • (\w+) 在第一个捕获组中捕获1+个字符
  • ; 匹配;

查看 regex demo

在 .NET 中,您还可以使用:

(?<=^(?:\w+=)?)\w+(?=;) 

Regex demo | C# demo