# Multiple Characters Negate Using Regexp

**URL:** <https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650>\
**Category:** Rails\
**Created:** [February 20, 2006, 12:54am UTC](https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650 "2006-02-20T00:54:51Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![softwareengineer\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b782af/32.png) [@softwareengineer\_99](https://www.ruby-forum.com/u/softwareengineer_99)\
**Post date:** [February 20, 2006, 12:54am UTC](https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650/1 "2006-02-20T00:54:51Z")

</div>

Dear experts,

I am trying to build a regular expression to filter out anything  
between \<script … \> and tags where I can specify something  
using negate class to exclude more than one character in sequence.

I tried:

originalresponse.gsub(/\<script([^\>]+)\>([^\<]+)?\</script\>/,’’)

but obviously if the script has the character \< before then  
my regexp breaks.

I also tried:  
originalresponse.gsub(/\<script([^\>]+)\>([^\</script]+)?\</script\>/,’’)

but it doesn’t work

Can anyone guide me on how I can specify multiple character negation?  
I will greatly appreciate it.

Is this even possible? How else can I remove everything contained  
between tags?

Thanks  
Frank

---

<div class="post-metadata">

**Author:** ![softwareengineer\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b782af/32.png) [@softwareengineer\_99](https://www.ruby-forum.com/u/softwareengineer_99)\
**Post date:** [February 20, 2006, 1:16am UTC](https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650/2 "2006-02-20T01:16:15Z")

</div>

Is it possible to specify a multiple line regular expression?

Thanks for your assistance.  
Frank

---

<div class="post-metadata">

**Author:** ![softwareengineer\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b782af/32.png) [@softwareengineer\_99](https://www.ruby-forum.com/u/softwareengineer_99)\
**Post date:** [February 20, 2006, 4:06am UTC](https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650/3 "2006-02-20T04:06:51Z")

</div>

Can you restate your original problem a bit better? Are you wanting to  
delete everything between the tags?

If so, I think this expression should work (famous last words 🙂

/(\< _script._?\>).\*?(\</ \*script \*\>)/

I tried it like this:

irb(main):001:0\> “hello there”.gsub(/(\<  
_script._?\>).\*?(\</ \*script \*\>)/,‘’)  
=\> “hello there”

Jeff

> **[Hey Daddio!](http://www.softiesonrails.com)**
>
> Home of Hey Daddio Software

---

<div class="post-metadata">

**Author:** ![softwareengineer\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b782af/32.png) [@softwareengineer\_99](https://www.ruby-forum.com/u/softwareengineer_99)\
**Post date:** [February 24, 2006, 1:37pm UTC](https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650/4 "2006-02-24T13:37:37Z")

</div>

softwareengineer 99 wrote:

> Is it possible to specify a multiple line regular expression?

yes, just put ‘m’ after it, e.g.

%r{\<textarea[^\>]_?id=“markup”[^\>]_\>([^\<]\*)}m

or

/\<textarea[^\>]_?id=“markup”[^\>]_\>([^\<]\*)/m

regards

Justin

---

<div class="post-metadata">

**Author:** ![softwareengineer\_99](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b782af/32.png) [@softwareengineer\_99](https://www.ruby-forum.com/u/softwareengineer_99)\
**Post date:** [February 21, 2006, 8:14pm UTC](https://www.ruby-forum.com/t/multiple-characters-negate-using-regexp/70650/5 "2006-02-21T20:14:09Z")

</div>

I recommend /\<script([^\>]+)\>.\*?\</script\>/

Adding the ? after the \* makes it un-greedy, so it will match the  
first following tag, as in the following example.

irb(main):001:0\> s = “I have a don’cha know :)”  
=\> “I have a don’cha know  
 :)”  
irb(main):002:0\> r = /\<script([^\>]+)\>._?\</script\>/  
=\> /\<script([^\>]+)\>._?\</script\>/  
irb(main):003:0\> s.gsub(r,’’)  
=\> “I have a don’cha know :)”

- Jamie
