gpt4 book ai didi

javascript - Regex - Java - 将 JS 正则表达式模式迁移到 Java Pattern 类的输入

转载 作者:行者123 更新时间:2023-11-28 18:02:26 26 4
gpt4 key购买 nike

我有以下正则表达式模式在 Javascript 中工作正常:

图案-

/\<span\>(\d{2}-\d{2}-\d{4})\s*?(\d{1,2}:\d{2}\s*?(?:am|pm))\s*?(?:<\/SPAN><BR\/?><SPAN>)?\s*?((\d[ -]*?){13,17})\s*?\<\/span\>/i 

字符串 -

<SPAN>06-24-2015  11:28AM  0250 01 90775 05342</SPAN>

但是在将相同的模式字符串传递给 Pattern.compile() 函数时出现错误。

Error is : Invalid escape sequence .

这是我尝试过的:

Pattern p = Pattern.compile("/\<span\>(\d{2}-\d{2}-\d{4})\s*?(\d{1,2}:\d{2}\s*?(?:am|pm))\s*?(?:<\/SPAN><BR\/?><SPAN>)?\s*?((\d[ -]*?){13,17})\s*?\<\/span\>/i ");  

Matcher m = p.matcher("<SPAN>06-24-2015 11:28AM 0250 01 90775 05342</SPAN>");
boolean b = m.matches();

请建议我如何纠正这个问题。

谢谢

编辑

在知道注释后,我将代码更改为以下,但现在我无法匹配模式:

Pattern p = Pattern.compile(
"(?i)/\\<span\\>(\\d{2}-\\d{2}-\\d{4})\\s*?(\\d{1,2}:\\d{2}\\s*?(?:am|pm))\\s*?(?:<\\/SPAN><BR\\/?><SPAN>)?\\s*?((\\d[ -]*?){13,17})\\s*?\\<\\/span\\>");

Matcher m = p.matcher("<SPAN>06-24-2015 11:28AM 0250 01 90775 05342</SPAN>");
boolean b = m.matches();

System.out.println("Do regex pattern matches : " + b);

最佳答案

这个有效。编辑带来的唯一更改是删除开头的斜杠。这是一个简单的 JavaScript 工件。

Pattern p = Pattern.compile(
"(?i)\\<span\\>(\\d{2}-\\d{2}-\\d{4})\\s*?(\\d{1,2}:\\d{2}\\s*?(?:am|pm))\\s*?(?:<\\/SPAN><BR\\/?><SPAN>)?\\s*?((\\d[ -]*?){13,17})\\s*?\\<\\/span\\>");
Matcher m = p.matcher("<SPAN>06-24-2015 11:28AM 0250 01 90775 05342</SPAN>");
boolean b = m.matches();
System.out.println("Do regex pattern matches : " + b);

关于javascript - Regex - Java - 将 JS 正则表达式模式迁移到 Java Pattern 类的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43321134/

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