Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Regex 正则表达式查找方括号内的内容,但有一些例外:_Regex - Fatal编程技术网

Regex 正则表达式查找方括号内的内容,但有一些例外:

Regex 正则表达式查找方括号内的内容,但有一些例外:,regex,Regex,我想创建一个正则表达式来查找方括号内的内容,但有一些例外: 例如: 我使用了这个正则表达式 \[((?!')[^]]*)\] 它适用于前2个条件,但不适用于其他2个条件。您可以在负前瞻断言中添加$,并断言不能匹配任何整数: \[((?!['$]|\d+\])[^]]*)\] 说明: \[匹配[ 第1组中的捕获: ?!除非以下内容与此处匹配:或者。。。 [“$]其中一个字符”或$ |或 \d+\]一个正整数,后跟] 前瞻断言的结束 [^]]*匹配除右括号外的任意数量的字符 第1组结束 \]匹

我想创建一个正则表达式来查找方括号内的内容,但有一些例外:

例如:

我使用了这个正则表达式

\[((?!')[^]]*)\] 
它适用于前2个条件,但不适用于其他2个条件。

您可以在负前瞻断言中添加$,并断言不能匹配任何整数:

\[((?!['$]|\d+\])[^]]*)\]
说明:

\[匹配[ 第1组中的捕获: ?!除非以下内容与此处匹配:或者。。。 [“$]其中一个字符”或$ |或 \d+\]一个正整数,后跟] 前瞻断言的结束 [^]]*匹配除右括号外的任意数量的字符 第1组结束 \]匹配] 测试它。

您可以在负前瞻断言中添加$,并断言不能匹配任何整数:

\[((?!['$]|\d+\])[^]]*)\]
说明:

\[匹配[ 第1组中的捕获: ?!除非以下内容与此处匹配:或者。。。 [“$]其中一个字符”或$ |或 \d+\]一个正整数,后跟] 前瞻断言的结束 [^]]*匹配除右括号外的任意数量的字符 第1组结束 \]匹配]
测试它。

您可能完全可以避免负面展望:

\[[^]'$\d]*\]

您可能完全可以避免负面展望:

\[[^]'$\d]*\]

这个正则表达式可以完成这项工作

\[([^'$\d]+?)\]
说明:

\[与文字[符号]匹配。 捕获组 [^'$\d]+?匹配任何非文字或$or\d的字符一次或多次。?在+之后进行不情愿的非贪婪匹配。 \]匹配文字]符号。
这个正则表达式可以完成这项工作

\[([^'$\d]+?)\]
说明:

\[与文字[符号]匹配。 捕获组 [^'$\d]+?匹配任何非文字或$or\d的字符一次或多次。?在+之后进行不情愿的非贪婪匹配。 \]匹配文字]符号。
对不起,我忘了提出4个条件。它适用于前3个条件对不起,我忘了设置4个条件。它适用于前3个条件,您需要定义括号之间允许的确切内容。为什么abc合法而不是0?[0]是整数它可以是任何整数请精确。括号之间到底允许什么?@nitinjain那么匹配的字符串可以包含任何数字吗?没有数字?只有告诉人们要匹配的内容,才能得到正确的正则表达式。要匹配[1a]还是[a1]?它们都不是整数。您需要定义括号之间到底允许什么。为什么abc合法而不是0?[0]是整数它可以是任何整数请精确。括号之间到底允许什么?@nitinjain那么匹配的字符串可以包含任何数字吗?没有数字?只有告诉人们要匹配的内容,才能得到正确的正则表达式。要匹配[1a]还是[a1]?它们都不是整数。小心,在字符串foo[bar]baz[bam]boom中,它将匹配[bar]baz[bam]。小心,在字符串foo[bar]baz[bam]boom中,它将匹配[bar]baz[bam]。