0

大文字なるまですべての文字を取得したいのですが、最後から最初までです。(または右から左)

blab blab 12 34これはテストです!

必要This is a test!です。

これは私が見つけたものです:

^.*?(?=[A-Z])

しかし、それは戻りますblab blab 12 34

4

2 に答える 2

2

次の正規表現を使用します。

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!">
于 2012-06-20T22:26:50.903 に答える
1

OK、それを答えとして追加します。おそらく後で他のバリアントに開発します。簡単な解決策はsthでなければなりません。お気に入り:

 [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

于 2012-06-20T22:28:57.267 に答える