gpt4 book ai didi

python - 正则表达式匹配奇数空格

转载 作者:行者123 更新时间:2023-12-01 04:13:24 30 4
gpt4 key购买 nike

我需要匹配文本中的罗马数字。例如Star Wars VII The Force Awakens我使用这个表达式(?:^|\s)(IX|IV|V?I{0,3})(?:\s|$)但它将 VII 与空格匹配,即 _VII_

我尝试过(?<=^|\s)(IX|IV|V?I{0,3})(?=\s|$)但得到异常(exception) error: look-behind requires fixed-width pattern

我认为问题出在非捕获组上。如果我使用matchsearch - 它仅返回数字,但带有 sub - 它替换了非捕获组和捕获组(带空格的数字)。

目标是匹配文本中的罗马数字,前后有空格或没有(行首/行尾),而不是作为单词的一部分。

最佳答案

将交替 (|) 移到lookbehind之外:

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

See it in action

<小时/>或者,您可以将环顾四周替换为 word boundaries :

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

关于python - 正则表达式匹配奇数空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34619569/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com