繁体   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