#25517: merge with 3.5.
This commit is contained in:
commit
1d37771292
|
@ -1004,17 +1004,18 @@ confusing.
|
||||||
|
|
||||||
A negative lookahead cuts through all this confusion:
|
A negative lookahead cuts through all this confusion:
|
||||||
|
|
||||||
``.*[.](?!bat$).*$`` The negative lookahead means: if the expression ``bat``
|
``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression ``bat``
|
||||||
doesn't match at this point, try the rest of the pattern; if ``bat$`` does
|
doesn't match at this point, try the rest of the pattern; if ``bat$`` does
|
||||||
match, the whole pattern will fail. The trailing ``$`` is required to ensure
|
match, the whole pattern will fail. The trailing ``$`` is required to ensure
|
||||||
that something like ``sample.batch``, where the extension only starts with
|
that something like ``sample.batch``, where the extension only starts with
|
||||||
``bat``, will be allowed.
|
``bat``, will be allowed. The ``[^.]*`` makes sure that the pattern works
|
||||||
|
when there are multiple dots in the filename.
|
||||||
|
|
||||||
Excluding another filename extension is now easy; simply add it as an
|
Excluding another filename extension is now easy; simply add it as an
|
||||||
alternative inside the assertion. The following pattern excludes filenames that
|
alternative inside the assertion. The following pattern excludes filenames that
|
||||||
end in either ``bat`` or ``exe``:
|
end in either ``bat`` or ``exe``:
|
||||||
|
|
||||||
``.*[.](?!bat$|exe$).*$``
|
``.*[.](?!bat$|exe$)[^.]*$``
|
||||||
|
|
||||||
|
|
||||||
Modifying Strings
|
Modifying Strings
|
||||||
|
|
Loading…
Reference in New Issue