查找单词的最后一次出现

sha*_*bby 1 .net c# regex last-occurrence

我有以下字符串:

<SEM>electric</SEM> cu <SEM>hello</SEM> rent <SEM>is<I>love</I>, <PARTITION />mind
Run Code Online (Sandbox Code Playgroud)

我想在"PARTITION"标签之前找到最后一个"SEM"开始标签.不是SEM结束标签,而是开始标签.结果应该是:

<SEM>is <Im>love</Im>, <PARTITION />
Run Code Online (Sandbox Code Playgroud)

我试过这个正则表达式:

<SEM>[^<]*<PARTITION[ ]/>
Run Code Online (Sandbox Code Playgroud)

但它只有在最终的"SEM"和"PARTITION"标签之间没有任何其他标签时才有效.有任何想法吗?

Jon*_*eet 7

使用String.IndexOf查找PARTITION和String.LastIndexOf来查找SEM?

int partitionIndex = text.IndexOf("<PARTITION");
int emIndex = text.LastIndexOf("<SEM>", partitionIndex);
Run Code Online (Sandbox Code Playgroud)