gpt4 book ai didi

java - 如何发现包含转义字符的正则表达式?

转载 作者:行者123 更新时间:2023-12-02 06:38:33 25 4
gpt4 key购买 nike

我有以下文本(字符串):System.out.println(text)

..............
BLOOMINGTON, IL 61710
Page 4 of 5
8/2/2009file://C:\hjO Fhjes\hShjort_2012w211231_0323212_575.htm
Location: EAST JEFRYN, NY
..............
<小时/>

我需要删除以 "Page" 开头并以 ".htm" 结尾的任何子字符串

我尝试了以下方法:

      Pattern patternP = Pattern.compile("(?:Page.*?)(\\n+)+htm", Pattern.DOTALL);
Matcher matcherP = patternP.matcher(filtered);
matcherP.find();
String page = matcherP.group();
text = text.replace(page, "");

但这不会过滤,我认为是因为转义字符。我该如何改进?

最佳答案

您的正则表达式不允许 \nhtm 之间存在任何内容。您可能想将其更改为

"(?:Page.*?)(\n+).+htm"

请注意,我只使用了 1 个 \ 来转义换行符。这是因为 \n 是一个 java 转义序列,您只需要使用 2 个 \ 来表示像 \\d

这样的正则表达式转义序列

*您可能需要确保您的正则表达式实现支持这样的换行符。

关于java - 如何发现包含转义字符的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385605/

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