考虑以下字符串,它是一个目录
Table of Content
Name abc ......... 20
Name fghkjkj kjkj . 31
Name.with.dot ..... 45
我想提取部分的名称' Name abc
'' Name fghkjkj kjkj
'和' Name.with.dot
'
我还没有找到实现该目标的正确正则表达式,有什么见解吗?
考虑以下字符串,它是一个目录
Table of Content
Name abc ......... 20
Name fghkjkj kjkj . 31
Name.with.dot ..... 45
我想提取部分的名称' Name abc
'' Name fghkjkj kjkj
'和' Name.with.dot
'
我还没有找到实现该目标的正确正则表达式,有什么见解吗?
我认为以下应该有效:
^.*?(?= \.+ \d+$)
假设您正在逐行工作或MULTILINE
启用了模式。肯定的前瞻断言确保我们在只有点和数字后立即结束匹配。
解释:
^ # Start of line
.*? # Match any number of characters, as few as possible
(?= # Look ahead to assert that the following matches from here:
[ ] # a space
\.+ # one or more dots
[ ] # a space
\d+ # a number
$ # End of line
) # End of lookahead
这可以解决问题:
^Name[ .]\w+(?:[. ]\w+)?
解释:
^ # Start of string
Name # Literal string 'Name'
[ .] # Space or period
\w+ # One or more word characters
(?: # Start non-capturing group
[ .] # Space or period
\w+ # One or more word characters
) # Close noo-capturing group
? # Make previous group optional
现场演示在这里。