[英]How to match a regular expression against another regular expression in javascript?
[英]How to match regular expression In Javascript
我的字符串[FBWS-1] comes first than [FBWS-2]
在这个字符串中,我想找到所有[FBWS-NUMBER]
我试过这个:
var term = "[FBWS-1] comes first than [FBWS-2]"; alert(/^([[AZ]-[0-9]])$/.test(term));
我希望得到[FBWS-NUMBER]
字符串匹配的所有NUMBERS
。
但没有成功。 我是正则表达式的新手。
任何人都可以帮助我。
请注意, ^([[AZ]-[0-9]])$
匹配字符串的开头( ^
), [
或大写的ASCII字母(带[[AZ]
), -
,ASCII数字和]
char在字符串的末尾。 所以,基本上,像[-2]
或Z-3]
这样的字符串。
你可以用
/\[[A-Z]+-[0-9]+]/g
请参阅正则表达式演示 。
注意如果您需要“硬编码” FBWS
(仅匹配FBWS-123
而不是ABC-3456
FBWS-123
),请在模式中使用它而不是[AZ]+
, /\\[FBWS-[0-9]+]/g
。
细节
\\[
- 一个[
char [AZ]+
- 一个或多个(由于+
量词)大写ASCII字母 -
- 连字符 [0-9]+
- 一个或多个(由于+
量词)ASCII数字 ]
- a ]
char。 与String#match()
一起使用的/g
修饰符返回所有找到的匹配项。
JS演示:
var term = "[FBWS-1] comes first than [FBWS-2]"; console.log(term.match(/\\[[AZ]+-[0-9]+]/g));
您可以使用:
[\w+-\d]
var term = "[FBWS-1] comes first than [FBWS-2]"; alert(/[\\w+-\\d]/.test(term));
您现有的正则表达式不起作用的原因有多种。
^$
[AZ]
你需要使用+
来使这个贪婪 您可以使用短字\\w
和\\d
缩短[AZ]
和[0-9]
。 括号通常是不必要的。
请注意,您的代码只返回一个真正的假值(您的使用test
)ATM不清楚这是否是您想要的。 您可能希望使用match
全局修饰符( //g
)而不是test
来获取集合。
以下是使用string.match(reg)
获取所有匹配字符串的示例:
var term = "[FBWS-1] comes first than [FBWS-2]"; var reg1 = /\\[[AZ]+-[0-9]\\]/g; var reg2 = /\\[FBWS-[0-9]\\]/g; var arr1 = term.match(reg1); var arr2 = term.match(reg2) console.log(arr1); console.log(arr2);
您的正则表达式/^([[AZ]-[0-9]])$/
是错误的。
试试这个正则表达式, /\\[FBWS-\\d\\]/g
如果你只想找到1个匹配,则删除g,因为g将找到所有类似的匹配
编辑:有人提到你想要[“任意组合” - “数字”],因此,如果这是你正在寻找的,那么这应该工作/\\[[AZ]+-\\d\\]/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.