gpt4 book ai didi

java - 如何计算字符串中与给定正则表达式匹配的字符数

转载 作者:行者123 更新时间:2023-11-29 04:32:30 25 4
gpt4 key购买 nike

给定一个包含 0 或多个匹配 正则表达式 的任意 String

如何计算 String 中与正则表达式匹配的子字符串的字符数?

示例:

给定一个匹配任何电子邮件地址和字符串的正则表达式:

"I have two email addresses: email@gmail.com and email@hotmail.com"

这将返回 32 的 int 值("email@gmail.com" 加上 "email@hotmail.com")。

看来我说的还不够清楚。假设您想限制推文中的字符数,但您希望允许人们在推文中包含他们的电子邮件地址并将其计为零个字符。

解决方案可能的方法签名:

public int lengthOfSubStringsMatchingRegex(String input, String regex)

最佳答案

只需遍历正则表达式的匹配组,并使用 length() 提取字符数。将它们添加到您的柜台,仅此而已。

public int lengthOfSubStringsMatchingRegex(String input, String regex)
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);

int count = 0;
while (m.find())
count += m.group().length();

return count;
}

作为替代方案,但可读性稍差,您可以直接使用偏移量:

count += m.end() - m.start();

start() 返回上一场比赛的开始索引。
end() 返回最后一个字符匹配后的偏移量。

关于java - 如何计算字符串中与给定正则表达式匹配的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43267419/

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