如何在javascript中构建正则表达式匹配
我有这根绳子如何在javascript中构建正则表达式匹配,javascript,regex,Javascript,Regex,我有这根绳子 [X=(any number)] (any character, include space) [/X] 示例:[X=5]测试字符串[/X] 我使用/(\[)(X=)(\d+\])(\w\s\)(\[/X\])/gi进行测试,但它不起作用 var myregexp = /\[X=(\d+)\]([^[]*)\[\/X\]/g; 适用于我,包括测试字符串是否为多行。测试 适用于我,包括测试字符串是否为多行。用测试时,问题是/也需要转义。此外,对常量匹配进行分组也不是很有用。最后,
[X=(any number)] (any character, include space) [/X]
示例:[X=5]测试字符串[/X]
我使用/(\[)(X=)(\d+\])(\w\s\)(\[/X\])/gi进行测试,但它不起作用
var myregexp = /\[X=(\d+)\]([^[]*)\[\/X\]/g;
适用于我,包括测试字符串是否为多行。测试
适用于我,包括测试字符串是否为多行。用测试时,问题是/
也需要转义。此外,对常量匹配进行分组也不是很有用。最后,您正在匹配(\w\s.)
,但这只允许按此顺序匹配一个单词字符、一个空格字符和一个任意类型的字符。我不明白那有什么用。尝试:
/\[X=(\d+)\](.+)\[\/X\]/gi
这将对两个变量部分进行分组。问题是/
也需要转义。此外,对常量匹配进行分组也不是很有用。最后,您正在匹配(\w\s.)
,但这只允许按此顺序匹配一个单词字符、一个空格字符和一个任意类型的字符。我不明白那有什么用。尝试:
/\[X=(\d+)\](.+)\[\/X\]/gi
这将对两个变量部分进行分组。使用此regex
:
/\[X=\d+\].+\[\/X\]/gi
它检查给定字符串是否为所需格式。使用此regex
:
/\[X=\d+\].+\[\/X\]/gi
它检查给定字符串是否为所需格式。您想用字符串做什么?提取信息?验证了吗?还有别的吗?有个开始很好。考虑把它分解成碎片,找出哪部分不起作用,但是…这是调试的一部分:)(这在REPL中很容易做到,并且有在线正则表达式验证器,使用起来更简单。)@Louis.clat。替换什么?验证什么?好的,现在我可以用/[X=(\D+)([\w\s\.\-]+)[\/X]进行验证了/gi@Louis.CLast:您确定不想转义[
s/]
s吗?您想对字符串做什么?提取信息?验证了吗?还有别的吗?有个开始很好。考虑把它分解成碎片,找出哪部分不起作用,但是…这是调试的一部分:)(这在REPL中很容易做到,并且有在线正则表达式验证器,使用起来更简单。)@Louis.clat。替换什么?验证什么?好的,现在我可以用/[X=(\D+)([\w\s\.\-]+)[\/X]进行验证了/gi@Louis.CLast:你确定你不想逃离[
s/]
s?你为什么大喊大叫?:-)你为什么大喊大叫?:-)我想你需要用+
@gdoron来代替*
:我不能从这个问题上完全理解,但可能是这样。他向我建议了w和s,和(+.),这样我就更容易理解了。([\w\s\.-]+)我想你需要用+
@gdoron替换*
:我不能从这个问题上完全理解,但可能是这样。他向我建议了\w和\s,以及(+.+),这样我就更容易理解了。([\w\s\.\-]+)