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
Regex 正则表达式求反字符串_Regex_String_Notepad++_Regex Negation - Fatal编程技术网

Regex 正则表达式求反字符串

Regex 正则表达式求反字符串,regex,string,notepad++,regex-negation,Regex,String,Notepad++,Regex Negation,我想要一个正则表达式来查找所有不包含td的tr标记 <tr asdf> <td> <hello> </td> </tr> <tr asdf> </tr> 我只想找到代码中的最后两行。下面是正则表达式的模板: <tr.*?>(Cannot figure this section out)</tr> (无法理解此部分) 您可以使用这种模式: <tr[^>]*>(?&g

我想要一个正则表达式来查找所有不包含td的tr标记

<tr asdf>
<td>
<hello>
</td>
</tr>
<tr asdf>
</tr>

我只想找到代码中的最后两行。下面是正则表达式的模板:

<tr.*?>(Cannot figure this section out)</tr>
(无法理解此部分)

您可以使用这种模式:

<tr[^>]*>(?>[^<]+|<(?!td\b|/tr>))*</tr>
]*>(?>[^#一个tr标签,里面有你想要的东西
(?>#打开一个原子群(像一个非捕获的
#组,但在关闭后禁止回溯)
[^
)*#零次或多次
或者这一个(大部分时间较慢):

(?s)]*>(?:(?!
)*>((?!)*
试试这个。设置
g
s
标志。参见演示


@developer234:但是,请注意,如果您有嵌套的tr标记,这两种模式就不起作用。@AvinashRaj:有许多不同的情况需要处理,需要反思,但反思从教条开始就停止了。:)
<tr[^>]*>          # a tr tag with whatever you want inside
(?>                # open an atomic group (like a non-capturing
                   # group but forbids backtracking once it is closed)
    [^<]+          # all that is not a <
  |                # OR
    <(?!td\b|/tr>) # a < not followed by td or /tr>
)*                 # zero or more times
</tr>
(?s)<tr[^>]*>(?:(?!<td\b).)*?</tr>
<tr[^>]*>((?!<\/tr>|<td>|<\/td>).)*<\/tr>