gpt4 book ai didi

java - 多行 gnu 正则表达式

转载 作者:行者123 更新时间:2023-11-30 04:55:20 25 4
gpt4 key购买 nike

我想匹配新行后面的表达式。我正在使用 gnu.regexp 和标志 REG_MULTILINE。这是我要检查的字符串

Hello
Dude

我的方法是使用这个正则表达式来匹配。

String strRegExp = "^[Dd][Uu][Dd]";

但是它不起作用。看不出问题出在哪里。我在一个简单的单元测试中运行所有这些:

@Test
public void testREMatchAtStartOfNewLine()
throws Exception {
String strRegExp = "^[Dd][Uu][Dd]";
int flags = RE.REG_MULTILINE;
String strText ="Hello\nDude";
RE re = new RE(strRegExp, flags, RESyntax.RE_SYNTAX_PERL5);
REMatch match = re.getMatch (strText);
String strResult = "";
if (match != null) {
strResult = match.substituteInto ("$0");
}
assertEquals("Match at start of new line ", "Dud", strResult); // FAILS
}

提前致谢。编辑:为了澄清一下,我正在使用以下导入:

import gnu.regexp.RE;
import gnu.regexp.REMatch;
import gnu.regexp.RESyntax;

最佳答案

鉴于主页的下载链接已损坏,您使用 GNU Regex 库的任何原因是什么? :)

无论如何,当使用 RESyntax.RE_SYNTAX_PERL5 时,似乎需要 \r\n 作为行分隔符。将 \n 替换为 \r\n 似乎可行。

关于java - 多行 gnu 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8742764/

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