我想获取所有字符,直到有一个大写字母,但从结尾到开头。(或从右到左)
blab blab 12 34 这是一个测试!
我需要This is a test!
。
这是我设法找到的:
^.*?(?=[A-Z])
但它返回blab blab 12 34
我想获取所有字符,直到有一个大写字母,但从结尾到开头。(或从右到左)
blab blab 12 34 这是一个测试!
我需要This is a test!
。
这是我设法找到的:
^.*?(?=[A-Z])
但它返回blab blab 12 34
使用以下正则表达式:
irb(main):001:0> regex = /([A-Z][^A-Z]*)$/
irb(main):002:0> "blab blab 12 34 This is a test!".match regex
=> #<MatchData "This is a test!" 1:"This is a test!">
好的,我将添加它作为答案,稍后可能会将其开发为其他变体。简单的解决方案应该是某事。像:
[A-Z][^A-Z]*$
测试(在 Perl 中):
print $1 if 'blab blab 12 34 This is a test!' =~ /([A-Z][^A-Z]*)$/;
返回:
This is a test!
为了解决这个问题,需要将模式锚定$
在字符串 ( )的末尾。
问候
rbo