gpt4 book ai didi

带有字符串utf8的Java正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:20 28 4
gpt4 key购买 nike

我有 2 个字符串:

来自 txt 文件的字符串 1,使用编码“UTF-8”的 BufferedReader 打开:

Tân_Dậu 1921 – Kỉ_Mão 1999

字符串 2 是我输入的:

Tân_Dậu 1921 - Kỉ_Mão 1999

和我的字符串模式:

[(]?([A-ZTĐẤ][a-záââậầấẹịỉìíợnọúùửỵýỷ]+[_][A-ZDĐẤ][a-záậãâậầấẹuịìíợọúùửỵýỷ]+)?[ ]?((\\d{4})|([?]))[ ]?[-][ ]?(([A-ZĐKẤ][a-záâỉoậầấẹịỉìíợọúùửỵýỷ]+[_][A-ZĐẤ][a-záãâậầấãẹịìíợọúùửỵýỷ]+))?[ ]?(\\d{4}|\\d{2}[)])[ ]?[)]?

我使用:

Matcher m = p.matcher(test.trim());
while(m.find())
{
System.out.println("-->"+m.group());
}

'test' 是字符串 1 和 2 。但只有字符串 2 匹配。什么问题以及如何解决它?感谢您的帮助。

最佳答案

问题是 -。您似乎有两个版本。更改您的表达方式: [(]? 4})|([?]))[]?[ - ] []? [ ]?(\\d{4}|\\d{2}[)])[ ]?[)]? 应该可以解决问题(示例可用 here )。

请注意 [-] 已更改为 [-–]

关于带有字符串utf8的Java正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451438/

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