簡體   English   中英

正則表達式匹配奇數空間

[英]Regex is matching odd spaces

我需要在文本中匹配羅馬數字。 例如Star Wars VII The Force Awakens我使用以下表達式(?:^|\\s)(IX|IV|V?I{0,3})(?:\\s|$)但它將VII與空格匹配,即_VII_

我嘗試了(?<=^|\\s)(IX|IV|V?I{0,3})(?=\\s|$)但出現了exeption error: look-behind requires fixed-width pattern向后看error: look-behind requires fixed-width pattern

我認為問題不在於捕獲人群。 如果我使用matchsearch -它僅返回數字,但帶有sub -替換非捕獲組和捕獲組(帶空格的數字)。

目的是使文本中的羅馬數字前/后匹配空格或不帶空格(行的開始/結尾),而不是單詞的一部分。

將替代( | )移動到后面的外觀之外:

(?:^|(?<=\s))(IX|IV|V?I{0,3})(?=\s|$)

實際觀看


另外,您也可以使用文字邊界替換環顧四周:

 \\b(IX|IV|V?I{0,3})\\b 

暫無
暫無

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

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