我需要一些帮助编写RegEx表达式。我需要一个可以匹配以下模式的表达式(包括单词和数字,空格和逗号):
到目前为止,我编写了一个表达式,其中包括前三个模式和所有大小写的变化:
r'(?i)(line item[\.*\,*\s*\d+]+]+|line[\.*\,*\s*\d+]+|lines[\.*\,*\s*\d+]+|line items[\.*\,*\s*\d+]+)'
我想列出列出的最后两种模式,但不确定如何。我通过如下修改捕获组为匹配“第10行和第45行”的模式编写了该表达式:
r'(Lines[\.*\,*\w*\s*\d+]+)'
但是,它不能按预期方式工作。它选择字符串中的所有单词字符。我想保持表情贪婪,但不确定如何实现列表中的最后两种模式。
有什么建议吗?
谢谢
您可以使用
(?i)lines?(?:\s+items?)?\s*\d+(?:\.\d+)?(?:\s*(?:,|and)\s*\d+(?:\.\d+)?)*
请参见regex demo。详细信息:
(?i)
-忽略大小写修饰符lines?
-line
或lines
(?
使前面的模式为可选,匹配1或0次出现)](?:\s+items?)?
-匹配1个或0个出现的1+个空格的可选非捕获组,后跟item
和可选s
字符\s*
-0+空格\d+(?:\.\d+)?
-1+位数字后跟.
和1+位数字的可选序列](?:\s*(?:,|and)\s*\d+(?:\.\d+)?)*
-0或更多重复\s*
-0+空格(?:,|and)
-,
或and
字符序列\s*
-0+空格\d+(?:\.\d+)?
-1+位数字后跟.
和1+位数字的可选序列]