2016-09-23 5 views
6

Perlの正規表現は、\Kバックスラッシュ配列を有する:PythonのPerl正規表現の Kバックスラッシュシーケンスに相当するものはありますか?

\ K
これは、Perl 5.10.0で登場しました。 \Kの何かマッチした左は$&に含ま はなく、パターンが 代わりに使用されている場合は置き換えられません。これにより、 s/(PAT1) PAT2/${1}REPL/xまたはs/(?<=PAT1) PAT2/REPL/xの代わりにs/PAT1 \K PAT2/REPL/xと書くことができます。

ニーモニック:してください。

Pythonで同等のものはありますか?

+2

パイソン( 'regex'モジュール)も、それをサポートしています。 – revo

+0

@revo、あなたは(おそらくhttps://pypi.python.org/pypi/regexおよび/またはhttps://bitbucket.org/mrabarnett/mrab-regexへのリンクを含む)は、その効果への答えを追加している、またはやりましょうか? –

+0

(...関連して、https://bitbucket.org/mrabarnett/mrab-regex/issues/151/request-k - 正規表現モジュールに '\ K'のチケットが追加されています)。 –

答えて

7

のPython reモジュールへの提案交換、available from pypi under the name regexは、この機能を持っています。その正規のソースリポジトリとバグトラッカーはin bitbucketです。

これはticket 151で、後半に2015年に追加されました。そのチケットから、その使用の例を取る:

import regex as mrab 
>>> bsk = mrab.compile(r'start=>\K.*') 
>>> print(bsk.search('boring stuff start=>interesting stuff')) 
<regex.Match object; span=(20, 37), match='interesting stuff'> 
関連する問題