Regex 排除/包括正则表达式模式
我想尝试制作更多类型的正则表达式,所以我一直在尝试做以下工作 以下是我的表达: 在测试字符串中,前3个是好的,所以像这样的模式必须匹配,问题是最后一个,我不想包括在内,所以我尝试这样做: 这是: 但是没有运气 其主要思想是:Regex 排除/包括正则表达式模式,regex,pattern-matching,regex-negation,Regex,Pattern Matching,Regex Negation,我想尝试制作更多类型的正则表达式,所以我一直在尝试做以下工作 以下是我的表达: 在测试字符串中,前3个是好的,所以像这样的模式必须匹配,问题是最后一个,我不想包括在内,所以我尝试这样做: 这是: 但是没有运气 其主要思想是: `aaa ... bbb ccc` -> must match `ccc ... (aaa|ddd|eee) ... bbb ccc` -> should not match 我怎样才能使它工作或更好的实现?这里有一个相对简单的正则表达式来解决您的问题:
`aaa ... bbb ccc` -> must match
`ccc ... (aaa|ddd|eee) ... bbb ccc` -> should not match
我怎样才能使它工作或更好的实现?这里有一个相对简单的正则表达式来解决您的问题:
(?:(?<=[-]\s)(?:ITA\s)?\w{3}\s\w{3}\s[-]\s\w{3}\s\w{3}\s\w{3}\b)|(?:Eng\.sub\.ita)
(?:(?您可以使用
var rx = new Regex(@"(?:^|])(?:(?!\b(?:eng|ita)\b)[^]])*\b(eng(?:\W+\w+)?\W+sub\W+ita)\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);
请参阅。您需要获取组1的值
图案细节
(?:^ |]
-字符串的开头或]
(添加| RegexOptions.Multiline
,如果您有一个多行字符串作为输入,但我想这些都是独立的字符串)
(?:(?!\b(?:eng | ita)\b)[^]*
-除了]
之外的任何字符,尽可能多的字符,这些字符不会启动整个单词eng
或ita
(请参阅以更好地理解此结构)
\b
-单词边界
(eng(?:\W+\W+?\W+sub\W+ita)
-第1组:
eng
-文字子字符串
(?:\W+\W+)
-任意1+个非单词字符的可选序列,后跟1+个单词字符(实际上是可选单词)
\W+
-1+非单词字符
sub
-文字子字符串
\W+
-1+非单词字符
ita
-文字子字符串
\b
-单词边界
见:
试试@LievenKeersmaekers我觉得OP需要匹配一次子字符串,如果它前面没有特定的子字符串。所以…基本上,你想匹配'Eng xyz-Sub Ita',其中xyz
是一些随机的三个字母,对吗?(旁白:注意堆栈溢出不是聊天室,所以“thx”、“want”和“lol”这里不合适。请用真话-最好是技术性的写作标准)。@halfer对不起我的语言,我的英语不太好,有时我会尽量用最好的方式解释自己。我总是尝试学习一些。这也很有效,谢谢,但与圣克拉丽塔饮食S02e01不匹配[Mux-XviD-Ita Eng Mp3-Sub-Ita Eng]NFMux由Pir8制作[CURA]Mostri Nella Storia…有可能从一开始就让它与一些额外的字符一起工作吗?@JormanFranzini你说它不工作是什么意思?它是@JormanFranzini你还想要…Sub Ita eng
结尾的eng部分吗?嗨,对不起,我写错了,我想说匹配!我的错了!但不需要匹配,因为这是Ita eng…Sub Ita eng.我认为匹配是因为XviD-Ita eng…我认为-会有所不同。与此同时,我研究了这里编写的所有代码,有很多东西需要学习!@JormanFranzini不必担心。我已经更新了我的代码以适应你的新条件。试试看:)令人印象深刻!也适用于我添加的最后一个。我将搜索更多的额外示例来测试它,但似乎非常好。我必须仔细阅读表达式的逻辑,因为对我来说是一种魔力!嗨,你的解决方案似乎是最适合所有模式的解决方案。我将在将来重试,可能需要一些调整,但我正在研究正则表达式我开始了解一些,不像你,但是some@JormanFranzini:)为什么不喜欢我?如果你了解这个模式,我相信你会成为一名职业选手。
var strs = new List<string> {
"Lucifer S03e15 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni",
"Lucifer S03e15 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni",
"Lucifer S03e01-08 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni SEASON PREMIERE",
"Young Sheldon S01e13 [SATRip 720p - H264 - Eng Ac3 - Sub Ita] HDTV by AVS",
"Young Sheldon S01e08 [Mux 1080p - H264 - Ita Eng Ac3 - Sub Ita Eng] WEBMux Morpheus",
"Young Sheldon S01e08 [Mux 1080p - H264 - Ita Eng Ac3 - Sub Ita Eng] WEBMux Morpheus",
"Young Sheldon S01e14 [SATRip 720p - H264 - Eng Ac3 - Sub Ita] HDTV by AVS",
"Lucifer S03e15 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni",
"Lucifer S03e16 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni",
"Lucifer S02e01-13 [XviD - Eng Mp3 - Sub Ita] DLRip by Pir8 [CURA] Fede e Religioni FULL ",
"Absentia S01e01-10 [Mux 1080p - H264 - Ita Eng Ac3 - Sub Ita Eng] By Morpheus The.Breadwinner.2017.ENG.Sub.ITA.HDRip.XviD-[WEB]"
};
var rx = new Regex(@"(?:^|])(?:(?!\b(?:eng|ita)\b)[^]])*\b(eng(?:\W+\w+)?\W+sub\W+ita)\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);
foreach (var s in strs)
{
Console.WriteLine(s);
var result = rx.Match(s);
if (result.Success)
Console.WriteLine("Matched: {0}", result.Groups[1].Value);
else
Console.WriteLine("No match!");
Console.WriteLine("==========================================");
}
Lucifer S03e15 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni
Matched: Eng Mp3 - Sub Ita
==========================================
Lucifer S03e15 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni
Matched: Eng Mp3 - Sub Ita
==========================================
Lucifer S03e01-08 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni SEASON PREMIERE
Matched: Eng Mp3 - Sub Ita
==========================================
Young Sheldon S01e13 [SATRip 720p - H264 - Eng Ac3 - Sub Ita] HDTV by AVS
Matched: Eng Ac3 - Sub Ita
==========================================
Young Sheldon S01e08 [Mux 1080p - H264 - Ita Eng Ac3 - Sub Ita Eng] WEBMux Morpheus
No match!
==========================================
Young Sheldon S01e08 [Mux 1080p - H264 - Ita Eng Ac3 - Sub Ita Eng] WEBMux Morpheus
No match!
==========================================
Young Sheldon S01e14 [SATRip 720p - H264 - Eng Ac3 - Sub Ita] HDTV by AVS
Matched: Eng Ac3 - Sub Ita
==========================================
Lucifer S03e15 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni
Matched: Eng Mp3 - Sub Ita
==========================================
Lucifer S03e16 [XviD - Eng Mp3 - Sub Ita Eng] DLRip By Pir8 [CURA] Fede e Religioni
Matched: Eng Mp3 - Sub Ita
==========================================
Lucifer S02e01-13 [XviD - Eng Mp3 - Sub Ita] DLRip by Pir8 [CURA] Fede e Religioni FULL
Matched: Eng Mp3 - Sub Ita
==========================================
Absentia S01e01-10 [Mux 1080p - H264 - Ita Eng Ac3 - Sub Ita Eng] By Morpheus The.Breadwinner.2017.ENG.Sub.ITA.HDRip.XviD-[WEB]
Matched: ENG.Sub.ITA
==========================================