gpt4 book ai didi

java - 理解正则表达式中的 `+`

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

我有一个正则表达式可以从推文中删除所有用户名。它看起来像这样:

regexFinder = "(?:\\s|\\A)[@]+([A-Za-z0-9-_]+):";

我试图了解每个组件的作用。到目前为止,我有:

(       Used to begin a “group” element
?: Starts non-capturing group (this means one that will be removed from the final result)
\\s Matches against shorthand characters
| or
\\A Matches at the start of the string and matches a position as opposed to a character
[@] Matches against this symbol (which is used for Twitter usernames)
+ Match the previous followed by
([A-Za-z0-9- ] Match against any capital or small characters and numbers or hyphens

虽然最后一点我有点迷茫。有人能告诉我 +): 是什么意思吗?我假设括号结束了组,但我没有得到冒号或加号。

如果我对正则表达式的理解有任何错误,请随时指出!

最佳答案

+ 实际上意味着它后面的“一个或多个”。

在这种情况下,[@]+ 表示“一个或多个@符号”,[A-Za-z0-9-_]+ 表示“一个或多个字母、数字、破折号或下划线”。 + 是几个量词之一,learn more here .

末尾的冒号只是确保匹配的末尾有一个冒号。

有时查看可视化效果会有所帮助,这是由 debuggex 生成的:

enter image description here

关于java - 理解正则表达式中的 `+`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604645/

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