在搜索字符串中包含通配符的正则表达式
Regular expression including wildcard character in search string
我想要一个字符串的正则表达式该字符串可以包含*
和?
。但应该至少有3个字母数字字符。
*abc* is valid
*ab*c is valid
*aaa? is valid
*aa is not valid
**aaa is not valid as it is not a valid regular expression
应该这样做:
^[*?]?([0-9a-z][*?]?){3,}$
解释:
-
^
匹配字符串 -
[*?]?
匹配可选的*
或?
-
(...){3,}
组必须出现至少3次 -
[0-9a-z][*?]?
匹配字母数字字符,后跟可选的*
或?
-
$
匹配字符串
连续*
和?
不匹配。
更新:忘了提,但它是在我的脑海中:使用i
修饰符使匹配不区分大小写(/.../i
)
可以使用正则表达式并在javascript中实现
var searchin = item.toLowerCase();
var str = "*abc*";
str = str.replace(/[*]/g, ".*").toLowerCase().trim();
return new RegExp("^"+ str + "$").test(searchin);
因为我猜?
代表任何一个字符和*
任意数量的字符,并且您想要禁止连续的*
,但不是连续的?
(因此file.???
将是有效的,代表file.
后跟三个字符,例如file.txt
),并允许其他内容而不仅仅是[A-Za-z'd*?]
:
/^(?!.*'*'*)(?:[^a-z'd]*[a-z'd]){3,}[^a-z'd]*/i
假设file.???*
也是有效的,因为这个组合意味着"至少3个字符"
相关文章:
- 带有通配符的姓氏Reg表达式
- 如何在正则表达式中匹配空格、换行符
- javascript中通配符搜索的正则表达式
- Node.js/Expss.js.如果与通配符路由器一起使用,则无法识别静态路由器
- Javascript正则表达式修饰符U
- Javascript:通配符正则表达式搜索
- 使用正则表达式删除段落开头和结尾的换行符
- Javascript/Jquery.使用带通配符的正则表达式将纯文本替换为html
- 正则表达式在换行符 前面有两个空格
- javascript 正则表达式中回车符、换行符和多个空格的匹配
- 用于搜索的通配符表达式
- 正则表达式替换为多个通配符在 PHP 中工作,而不是在 JavaScript 中
- 带字符串的正则表达式包含Javascript中带通配符/最小值、最大长度的数字
- 用于通配符域验证的正则表达式
- 正则表达式将字符串计数与通配符匹配
- JavaScript正则表达式,用于检查可能带有通配符子域说明符的URL
- 正则表达式与字符串的开头和结尾完全匹配,中间有通配符
- 正则表达式匹配当前URL中的字符串,包括通配符
- 在搜索字符串中包含通配符的正则表达式
- AngularJS Ui路由器正则表达式匹配url中的通配符