gpt4 book ai didi

Java 正则表达式具有无效的转义序列

转载 作者:行者123 更新时间:2023-12-01 07:48:05 27 4
gpt4 key购买 nike

我是正则表达式新手。

我有地址格式的数据(String[]数组)

示例

105 MyOwn St, City, ON A1B 2C3, Canada

有时我把它理解为

 -  MyOwn st, City, A1B 2C3, Canada
- City, A1B 2C3
- 105 MyOwn St, City, ON A1B 2C3
- City, ON A1B 2C3, Canada

我想要以下结果

Street: 105 MyOwn St or MyOwn st
City: City
Postal Code : A1B 2C3
Country : Canada

^我用 if else 来检查字符串大小。并使用了一些方法来得到我想要的结果。

我想改进我的功能。

所以,我现在要做的是,创建一些正则表达式模式并使用 switch 语句。

所以,我是正则表达式的新手,我在我的完整字符串上尝试了这个模式,它确实匹配并给了我 4 组的结果,我在这里尝试了( http://regexr.com/ )

Pattern datePatt = Pattern.compile("^(\d+\s+[a-zA-z]+\s+\w+)[,](\s*[a-zA-Z]+)[,](\s+[a-z|A-Z]{2}\s+[a-zA-Z][0-9][a-zA-Z]\s*[0-9][a-zA-Z][0-9])[,](\s+[a-zA-Z]{6})$");

这个模式与我的字符串匹配

但是当我在 eclipse 中尝试它时,它给了我错误

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

我正在寻求有关我的模式的帮助,为什么我会收到此错误?

最佳答案

反斜杠\是java转义符号以及正则表达式转义符号。

当您使用像 e 这样的字符串时。 G。 "\n" ,这被认为是换行符。就像这样每\<sign>是java字符串中的特殊字符。当你想在字符串中包含反斜杠时,你必须对其进行转义,得到一个双反斜杠 \\

您不想使用 java 转义序列,而是使用正则表达式转义序列,因此您需要对所有内容进行双重转义:

"^(\\d+\\s+[a-zA-z]+\\s+\\w+)[,](\\s*[a-zA-Z]+)[,](\\s+[a-z|A-Z]{2}\\s+[a-zA-Z][0-9][a-zA-Z]\\s*[0-9][a-zA-Z][0-9])[,](\\s+[a-zA-Z]{6})$"

关于Java 正则表达式具有无效的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45487850/

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