Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中构建正则表达式匹配_Javascript_Regex - Fatal编程技术网

如何在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\.\-]+)