gpt4 book ai didi

Java正则表达式排除文件路径中的点

转载 作者:行者123 更新时间:2023-12-01 11:39:23 31 4
gpt4 key购买 nike

我已经在正则表达式上摆弄了一段时间了,但我似乎无法把它弄对。

我有一个文本文件,其中包含一些文件信息和路径。我要搜索的文本是这样的:

Windows\System32\user32.dll

文件的内容是这样的:

Windows\System32\user32.dll
WINDOW~1.000\Windows\System32\user32.dll
Windows.old.000\Windows\System32\user32.dll

我一直使用的模式只是\\Windows\\System32\\user32.dll,但现在它匹配所有条目。

我需要做的是排除文件路径第一部分中包含 .~ 字符的任何内容,忽略 . 实际文件名中。

我一直在尝试像[^.~]这样的事情,但我可能做得完全错误。

任何意见或建议将不胜感激。

谢谢

最佳答案

如果您想完全匹配 Windows\System32\user32.dll ,您的 java 正则表达式将为:^Windows\\\\System32\\\\user32[.]dll$

请注意,在 java 正则表达式中,您必须转义反斜杠两次,一次用于正则表达式,一次用于字符串。

例如

    java正则表达式中的
  • \\w代表\w(单词字符)
  • java 正则表达式中的
  • \\\\w<​​ 表示 \w(斜杠和 w)`

点在正则表达式中也有特殊含义,最好转义(\\.)或将其放入字符类中:[.]

然后,达到您的要求:

What I need to do is to exclude any that contain a . or ~ character in the first portion of the file path

你可以这样做:

^[^.~\\\\]+\\\\.+

它匹配字符串:

  • 第一部分(第一个反斜杠之前)不包含 。或~
  • 第一个 \ 之后可以是任何内容。

关于Java正则表达式排除文件路径中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669935/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com