[英]regex match with * not matching text with non-English characters
我正在嘗試刮擦上面帶有希伯來語文本的頁面。 它包含以下HTML:
<div id="AgeRating">דירוג גיל: 12+</div>
我只想要12+部分(實際上:我只想要'12'部分)。 我目前正在使用其他語言的正則表達式:
new Regex(@"<div id=""AgeRating"">.*(\d{1,2})\+</div>", RegexOptions.Compiled);
但是我無法與之匹敵。 我嘗試了所有的正則表達式選項,如RightToLeft,CultureInvariant,SingleLine,MultiLine等,但沒有任何效果。 它確實可以與許多其他語言一起工作。
注意:我知道HtmlAgilityPack可以正確解析HTML 。 這是關於為什么看似正確的RegEx無法匹配特定字符串的問題(因為我目前有這個示例)。
這個正則表達式對我有用:
<div id="AgeRating">.*?(\d{1,2})\+
這將返回12
。 我加了一個?
到.*
以使點不貪心。
我認為讓您失望的是加號后有隱藏字符(也許是希伯來字符?)。 以下內容也適用於您的字符串(請注意加號后面的點,該點可容納您的隱藏字符):
<div id="AgeRating">.*?(\d{1,2})\+.</div>
您還需要?
如前所述,在.*
之后是為了防止正則表達式返回2
而不是12
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.