Javascript 正则表达式字符串最多包含一个“”
如果字符串中超过1次,则需要正则表达式按模式排除匹配字符串Javascript 正则表达式字符串最多包含一个“”,javascript,regex,Javascript,Regex,如果字符串中超过1次,则需要正则表达式按模式排除匹配字符串 var srg = new RegExp(/([a-z0-9#]+[\s])/g); 字符串: fdsffmsd,fmsd qwjswkds03sj ewew rfekwjkr#jfkdlsf wiru0ksd#erjk#jkls # casdw##kfdl 结果 fdsffmsd,fmsd qwjswkds03sj EWW rfekwjkrjfkdlsf WIRU0KSDERJKLS casdwkfdl 谢谢 更新:
var srg = new RegExp(/([a-z0-9#]+[\s])/g);
字符串:
fdsffmsd,fmsd
qwjswkds03sj
ewew
rfekwjkr#jfkdlsf
wiru0ksd#erjk#jkls
#
casdw##kfdl
结果
fdsffmsd,fmsd
qwjswkds03sj
EWW
rfekwjkrjfkdlsf
WIRU0KSDERJKLS
casdwkfdl
谢谢
更新:
请原谅我没有很好地解释任务
我更新了新小提琴
我们的工作:
搜索'-'字符
如果找到-匹配a-z0-9,但不满足任何空间
需要添加条件,仅在模式捕获中匹配0或1次
可能类似于[a-z0-9{0,1}]表示0次或1次…您可以调用“您的线路”。在方法中匹配//g.length,如果长度大于1,则可以排除这些结果。然后,如果满足此条件,则通过链接执行匹配。您可以调用“your line”。在方法中匹配//g.length,如果长度大于1,则可以排除这些结果。然后,如果满足此条件,则通过链接执行匹配。第一次尝试:
var srg = new RegExp(/[a-z0-9]*#?[a-z0-9]*\s/g);
说明:?指定字符可以出现一次,也可以不出现。这被夹在两个[a-z0-9]*表达式之间,允许在前后使用字母数字。final\s指定一个空格字符必须与原始正则表达式一致
编辑-第二次尝试:
这看起来更复杂,但它所做的只是使用上面的正则表达式,并将其分为两种可能性——第一种可能性是前面必须至少有一个字母数字,第二种可能性是后面必须至少有一个字母数字。第一次尝试:
var srg = new RegExp(/[a-z0-9]*#?[a-z0-9]*\s/g);
说明:?指定字符可以出现一次,也可以不出现。这被夹在两个[a-z0-9]*表达式之间,允许在前后使用字母数字。final\s指定一个空格字符必须与原始正则表达式一致
编辑-第二次尝试:
这看起来更复杂,但它所做的只是使用上面的正则表达式,并将其分为两种可能性——第一种可能性是在之前必须至少有一个字母数字,第二种可能性是在之后必须至少有一个字母数字。编辑:根据您的更新:
您可以使用此正则表达式允许字符串中的max one:
var srg = new RegExp('^-[a-z0-9]+#?[a-z0-9]+$');
'-wiru0ksd#erjk#jkls'.match(srg); //=> null
'-fdsffmsd,fmsd'.match(srg); //=> null
'-rfekwjkr#jfkdlsf'.match(srg); //=> ["-rfekwjkr#jfkdlsf"]
编辑:根据您的更新:
您可以使用此正则表达式允许字符串中的max one:
var srg = new RegExp('^-[a-z0-9]+#?[a-z0-9]+$');
'-wiru0ksd#erjk#jkls'.match(srg); //=> null
'-fdsffmsd,fmsd'.match(srg); //=> null
'-rfekwjkr#jfkdlsf'.match(srg); //=> ["-rfekwjkr#jfkdlsf"]
描述
此表达式将:
要求字符串以-字符开头
允许在字符串中最多显示一次
防止字符串中出现空格
允许一个或多个a-z0-9字符
允许字符出现在字符串中的任何位置,包括开头和结尾
^?!:*?{2,}-[a-z0-9]+$
例子
样品
描述
此表达式将:
要求字符串以-字符开头
允许在字符串中最多显示一次
防止字符串中出现空格
允许一个或多个a-z0-9字符
允许字符出现在字符串中的任何位置,包括开头和结尾
^?!:*?{2,}-[a-z0-9]+$
例子
样品
您需要匹配不包含双精度的行吗?是的,对,只有a-z0-9,但如果大于1,则不需要匹配。如果行正常,或者您希望搜索页面或文件中的所有a-z0-9,只要它们不包含2,则可以在一开始显示?我需要解析文本和粗体a-z0-9序列,但如果$1捕获包含超过1次,则忽略。2,3等等。你是否需要匹配不包含双精度的行?是的,对,只有a-z0-9,但如果大于1,则不需要匹配。如果行正常,或者你想搜索页面或文件中所有a-z0-9,只要它们不包含2?可以在一开始出现?我需要解析文本和粗体a-z0-9序列,但如果$1捕获包含超过1次,则忽略。2,3等等,我将在包含更多其他条件的其他正则表达式中使用解决方案,我将在包含更多其他条件的其他正则表达式中使用解决方案。小不,每行必须按空格或新线分隔,每行必须按空格或新行拆分。您用于生成上述图像的软件是什么?您用于生成上述图像的软件是什么?
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
(?: group, but do not capture (at least 2
times (matching the most amount
possible)):
--------------------------------------------------------------------------------
.*? any character except \n (0 or more
times (matching the least amount
possible))
--------------------------------------------------------------------------------
# '#'
--------------------------------------------------------------------------------
){2,} end of grouping
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
- '-'
--------------------------------------------------------------------------------
[a-z0-9#]+ any character of: 'a' to 'z', '0' to '9',
'#' (1 or more times (matching the most
amount possible))
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string
-abcdefghijklmnopqrstuvwxyz1234567890 = good
-abcdefghijklmnopq#rstuvwxyz1234567890 = good
-abcdefghijklmnopq##rstuvwxyz1234567890 = bad
-#abcdefghijklmnopqrstuvwxyz1234567890 = good
-##abcdefghijklmnopqrstuvwxyz1234567890 = bad
-#abcdefghijklmnopqrstuvwxyz1234567890 = good
-abcdefghijklmnopqrstuvwxyz1234567890# = good
-#abcdefghijklmnopqrstuvwxyz1234567890# = bad
#-abcdefghijklmnopqrstuvwxyz1234567890 = bad