簡體   English   中英

如何使用RegEx(C#)在特定字符串之后匹配字符串

[英]How to match a string after a specific string using RegEx (C#)

這是一個序列:

<h>blue</h>
<td>Water</td>
<h>red</h>
<td>Apple</td>
<h>yellow</h>
<td>Sun</td>

我想使用RegEx在字符串red之后找到<td>的第一次出現。 我試過(?<=red)(<td>)([\\s\\S]*?)(</td>)但什么也沒返回。 我不知道為什么。 我最近的是(?<=red)([\\s\\S]*?)(</td>)但是它添加了空格和標記。

我知道我可以使用索引和子字符串操作來做到這一點,但我寧願使用RegEx。

有沒有辦法做到這一點? 我專門在尋找C#特定的解決方案。

string s = Regex.Match(s, @"(?<=red)([\s\S]*?)(</td>)");

如果您確實真的很想使用正則表達式來解決此問題,請使用:

(?<=red</h>\s*<td>)([^<]*)

在此處輸入圖片說明

它使用(?<=…)正向后看,並將匹配並捕獲\\ s *之后的字符串,直到達到<為止。

但是我真的真的真的建議使用xml解析器來執行這種操作!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM