web-dev-qa-db-ja.com

正規表現の最後の出現?

最後のバックスラッシュの後の最後の部分をキャッチしようとしています
\Web_ERP_Assistant\付き)が必要です

私のアイデアは:

C:\Projects\Ensure_Solution\Assistance\App_WebReferences\Web_ERP_WebService\Web_ERP_Assistant


\\.+?(?!\\)      //  I know there is something with negative look -ahead `(?!\\)`

しかし、私はそれを見つけることができません。

[Regexer Demo]

85
Royi Namir

あなたの否定的な先読みソリューションは、例えばこれになります:

\\(?:.(?!\\))+$

ご覧ください ここRegexrで

69
stema

私のために働いたのは:

.+(\\.+)$

オンラインで試してみてください!

説明:

.+     - any character except newline
(      - create a group
 \\.+   - match a backslash, and any characters after it
)      - end group
$      - this all has to happen at the end of the string
35
Jeeter

否定的な先読みは正解ですが、次のようにより明確に書くことができます。

(\\)(?!.*\\)

これは、\の出現を探し、一致しないチェックで、その後に表示したくない文字が続く任意の数の文字を探します。負であるため、一致するものが見つからない場合にのみ一致します。

34
TimE

\\[^\\]*$のような文字列の末尾に固定してみてください。タスクに正規表現を絶対に使用する必要があるかどうかはわかりませんが。

この正規表現はどうですか:\\[^\\]+$

7
SERPRO

\で終了したときにもその結果を得るために、以下の正規表現を使用しました

(\\[^\\]+)\\?$

[Regex Demo]

2
shA.t

バックスラッシュを含めず、その後のテキストのみを含める場合は、([^\\]+)$またはUNIXの場合:([^\/]+)$を試してください。

1
Katja