gpt4 book ai didi

java - GWT 正则表达式结果与 Java 中的相同正则表达式不同

转载 作者:行者123 更新时间:2023-11-30 09:14:08 24 4
gpt4 key购买 nike

我需要一个正则表达式来测试某个人的可能名字。它应该包含拉丁字母、西里尔字母、空白字符和 _ 符号。

我在 Java 中编写了以下正则表达式,看起来这就是我需要的:

String regex = "([\\w&&\\D]|[\\u0410-\\u044F]|[\\s])+"

在 GWT 中,这不是预期的:它接受 #$%^... 等符号。我必须将第一组写成 [a-zA-Z_] 才能得到我想要的:字母和 _ 符号。

此外,在我修改之前,有一个旧的正则表达式,看起来像

String regex = "([\\w&&\\D]+|[\\u0410-\\u044F]+|[\\s]+)";

根据我的 Java 经验,它应该只接受由拉丁字母和 _ 符号组合的单词,或者仅由西里尔字母组合的单词或由空格组成的单词。但实际上在 GWT 中它接受所有单词,甚至 &*(... 等符号。

所以问题是:

1) 为什么 [\\w&&\\D] 不等同于 GWT 中的 [a-zA-Z_]

2) 为什么 GWT 中的 [...]+|[...]+|[...]+ 表现得像 ([...]|[. ..]|[...])+ 在 Java 中?

最佳答案

GWT 生成 JS,所以原因可能是 JS 和 Java 之间的正则表达式差异。

关于java - GWT 正则表达式结果与 Java 中的相同正则表达式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655650/

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