gpt4 book ai didi

javascript - 带有特定字符串和之后任意数量字符的正则表达式

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

我需要一个正则表达式来检查某个字符串是否存在于另一个字符串中并且之后有任意数量的字符。我写了这个表达式:

(somesite.com\/user\/[a-zA-Z0-9-_])\w\S

因此,例如,这个字符串 www.somesite.com/user/username 应该返回 true,而这个 www.somesite.com/user - false。

出于某种原因,它仅在 somesite.com/user/ 部分后至少有 3 个字符时才有效。所以 somesite.com/user/me 返回 false。并且 somesite.com/user/someuser 仅对 somesite.com/user/som 返回 true。

user/ 部分后唯一允许的字符应该是 a-z、A_Z、0-9、破折号和下划线。

我怎样才能让它发挥作用?

最佳答案

user/ 后需要三个字符,因为 [a-zA-Z0-9-_]\w\S 匹配(因此需要)三个字符才能存在在 user/ 之后。

你似乎需要

somesite\.com\/user\/[\w-]+

参见 regex demo

请注意,. 应该转义以匹配文字点。 \w 通常默认代表 [A-Za-z0-9_],所以您可以使用这个速记字符类来缩短模式。

详情

  • somesite\.com\/user\/ - somesite.com/user/ 子串
  • [\w-]+ - 1 个或多个单词字符(字母、数字、_)和/或 -

JS 演示:

var ss = ['www.somesite.com/user/username', 'somesite.com/user/me', 'www.somesite.com/user'];
var rx = /somesite\.com\/user\/[\w-]+/g;
for (var s of ss) {
console.log(s, "=>", s.match(rx));
}

关于javascript - 带有特定字符串和之后任意数量字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51966570/

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