$inFile=~/(.+)\.([^.]+)/
([^.]+)
2012-04-13T09:37:08 topegFast.Der reguläre Ausdruck würde finden: $1='/home/user/daten/2000' und $2='03.12/test' was natürlich völliger Unsinn ist.
$inFile=~/(.+)\.([^.]+)/
2012-04-13T09:49:03 GwenDragonWarum kann man sich das sparen? Wie meinst du das?
Wenn beide Teile (vor dem Punkt und danach) extrahiert werden sollen, kann das sinnvoll sein.
2012-04-14T07:23:04 GwenDragonMan könnte die Antwort von GUIfreund so auffassen, dass die Klasse weggelassen werden kann ohne ein anderes Regex zu verwenden.
QuoteDeshalb kann man sich im letzten Teil der Regex die Zeichenklasse sparen.
Guest Tom
Quote[/quote]The regular expression:
(?-imsx:(.+)\.([^.]+))
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
.+ any character except \n (1 or more times
(matching the most amount possible))
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
\. '.'
----------------------------------------------------------------------
( group and capture to \2:
----------------------------------------------------------------------
[^.]+ any character except: '.' (1 or more
times (matching the most amount
possible))
----------------------------------------------------------------------
) end of \2
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------