新的tweet url正则表达式,用于正确的字符计数

New tweet urls regex for correct character counting

本文关键字:字符 用于 tweet url 正则表达式 新的      更新时间:2023-09-26

我正在尝试重现新的tweet形式行为,例如正确的url字符计数。因此,我需要正确的正则表达式,根据示例返回'true'或url数组:

1. www.google.com
2. http://www.google.com
3. https://www.google.com
4. http://google.com
5. https://google.com
6. google.com

我的最新发现是:

(http|https):'/'/['w-]+('.['w-]+)+(['w.,@?^=%&:'/~+#-]*['w@?^=%&'/~+#-])?

这工作几乎完美,但它没有捕捉选项1(与www在开头)。

我不希望像google.com这样的url在something@google.com

时有效

我的目标是能够计数所有有效的url

http://部分可选:

(?:(http|https):'/'/)?['w-]+('.['w-]+)+(['w.,@?^=%&:'/~+#-]*['w@?^=%&'/~+#-])?

试试这个:

 ^(https|http)?(':'/'/)?(['w'.]*)'.(['w'.]+)

在notepad++和regex101.com中测试

我决定使用现有的库https://github.com/twitter/twitter-text/tree/master/js

它的工作原理就像twitter网站。

我在rubular.com (Ruby)中测试了这个:

(?<![@'w])(((http|https)(:'/'/))?(['w'-_]{2,})((['.])(['w'-_]*)){1,})(['w.,@?^=%&amp;:'/~+#-]*['w@?^=%&amp;'/~+#-])
JS:

(^(((http|https)(:'/'/))?(['w'-_]{2,})((['.])(['w'-_]*)){1,})(['w.,@?^=%&amp;:'/~+#-]*['w@?^=%&amp;'/~+#-]*)|(?:[^@])'b(((http|https)(:'/'/))?(['w'-_]{2,})((['.])(['w'-_]*)){1,})(['w.,@?^=%&amp;:'/~+#-]*['w@?^=%&amp;'/~+#-]*))
regex101