开发者

Regex to exclude multiple strings

开发者 https://www.devze.com 2023-03-30 20:25 出处:网络
Could use some help with Regex searching with NetBeans 7.01\'s find function. I\'m trying to exclude multiple strings. Specifically, the target lines:

Could use some help with Regex searching with NetBeans 7.01's find function.

I'm trying to exclude multiple strings. Specifically, the target lines:

<div class="table_left">
<div class="table_right">
<div class="table_clear">

I need to match only the third and other Div classes that are not either table_left or table_right.

I'开发者_Python百科ve tried:

class="table_(((?!left).*)|((?!right).*))

and

class="table_(left|right){0}

I realized while pasting my first Regex line that I'm matching not right OR not left, which is returning both. What is the proper way to specify two conditions? The and operator?

The joys of searching for words that are also Boolean operators...


Try this pattern:

<div\s+class="(?!table_(left|right))[^"]+"

which wouldn't match:

<div class="table_left">
<div class="table_right">

but would match:

<div class="table_clear">
<div class="foo">

EDIT

The HT wrote:

I need to match only classes that begin with table, but are not right or left

Ah, okay, that would look like:

<div\s+class="table_(?!left|right)[^"]+"

or

<div\s+class="table(?!_left|_right)[^"]+"

as you already found yourself (but I included it in my answer for completeness sake).

A quick explanation of the pattern <div\s+class="table_(?!left|right)[^"]+":

<div                         # match '<div'
\s+                          # match one ore more space chars
class="table_(?!left|right)  # match 'class="table_' only if it is not followed by 'left' or 'right'
[^"]+                        # match one or more characters other than '"'
"                            # match a '"'
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号