当前位置: 首页 > 知识库问答 >
问题:

使用regex[重复]分析字符串

俞新翰
2023-03-14

我正在尝试对字符串/home/user/test.dat我使用String[]拆分=file.split ("(?!.*/)");但是拆分[1]只返回第一个字符而不是整个文件名。我将如何编辑我的正则表达式,以便它返回最后一个正斜杠之后的所有内容?

共有2个答案

钮安歌
2023-03-14

正则表达式

\/((\w+)\.(\w+))$

Debuggex演示

但是,由于您使用的是Java,因此只需将字符串加载到File helper中即可拉出文件名:

JAVA

Path p = Paths.get("C:\\Hello\\AnotherFolder\\The File Name.PDF");
String file = p.getFileName().toString();
巫马泓
2023-03-14

除非有令人信服的理由使用正则表达式,否则我将使用简单的字符串。lastIndexOf(int)。比如,

String file = "/a/b/c/d/e/test.dat";
int afterSlash = file.lastIndexOf('/');
if (afterSlash > -1) {
    file = file.substring(afterSlash + 1);
}
System.out.println(file);

上述产出为(所要求的)

test.dat
 类似资料:
  • 这是作为输入的字符串,但我只需要每一列,从第二列开始,即: 1(第二行) 2和1(第三行) 1(第五排) 这个在可能有多少行或多少列(列被一个空格分割)方面没有固定的大小。 我认为通过使用以下工具,这相当容易: 我需要第一列之后的每一列。我仍在学习regex,但似乎找不到一个好的解决方案。我知道关于拆分的“\\r?\\n”和“”,但不知道如何将两者连接起来以获取每一列。非常感谢您的帮助:) 另一个

  • 我尝试了这种模式,但发现第一个匹配的句子带有符号

  • 我有 REGEX,我希望在下面排除某些字符。正确排除这些字符:£“~#¬|{} 但这些不是: @[]/?;: 因此,例如,test£test 被正确标识为无效,但test@test被错误地标识为有效。 在https://regex101.com/上测试发现问题在于括号,并指出我需要转义第一个([括号]和-[连字符],就像这样- ^[a-zA-z0-9!$%^ 有什么办法可以让这个正则表达式按照我想

  • 我有一份清单 我如何迭代列表并解析所有字符串,以便在迭代结束时我可以有一个包含如下内容的字符串