[英]Recognize roman numeral followed by '.', space and then capital letter. (RegEx)
有人可以幫我嗎?
我正在嘗試將羅馬數字與“。”匹配。 在末尾,然后是一個空格和一個大寫字母。 例如:
I. 這是一條線。
二、 這是另一條線。
X. 這里又是另一行。
因此,正則表達式應該匹配"I. A"
、 "II. A"
和"X. H"
。
我做了這個"^(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}){1,4}\.\s[AZ]"
但問題是這個正則表達式也與". A"
匹配,我不想要它。
在簡歷中,它應該至少有一個羅馬數字,后跟一個"."
然后是一個空格和一個大寫字母。
您需要在開頭有一個(?=[LXVI])
前瞻,在字符串的開頭至少需要一個羅馬數字字母:
^(?=[LXVI])(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\.\s[A-Z]
# ^^^^^^^^^
請參閱正則表達式演示。 不知道你為什么使用{1,4}
,我建議刪除它。
這里的另一個解決方法是在^
之后使用單詞邊界:
^\b(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\.\s[A-Z]
#^^
這將不允許匹配 where .
自\b
以來出現在開頭,需要與字符串開頭相同的 position ,要求下一個字符必須是單詞 char (這里,它必須是羅馬數字)。
關於\.\s[AZ]
,您可以在\s
之后添加+
或*
來增強它,如果您需要匹配它並從匹配中排除,請將其轉換為積極的前瞻, (?=\.\s+[AZ])
或(?=\.\s*[AZ])
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.