how to match the first pattern

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

how to match the first pattern

Sand Glass
This is my code block:
###########
output [NUM_STAGE-1:0]  enable;
input  [7:0] big_grad_thr;//8'h10 [2:0]
###########
I want to find pattern "[NUM_STAGE-1:0]" "[7:0]",
I tried '/\[.*\]', but the result is "[7:0] big_grad_thr;//8'h10 [2:0]",
how can I stop the pattern at the first "]"?

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Tony Mechelynck
On Sat, Jul 28, 2018 at 9:18 AM, Sand Glass <[hidden email]> wrote:
> This is my code block:
> ###########
> output [NUM_STAGE-1:0]  enable;
> input  [7:0] big_grad_thr;//8'h10 [2:0]
> ###########
> I want to find pattern "[NUM_STAGE-1:0]" "[7:0]",
> I tried '/\[.*\]', but the result is "[7:0] big_grad_thr;//8'h10 [2:0]",
> how can I stop the pattern at the first "]"?

See :help pattern-overview

The * multi matches "as many as possible" of the preceding atom. To
match "as few as possible", use \{-} instead.

Best regards,
Tony.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Sand Glass
In reply to this post by Sand Glass
On Saturday, July 28, 2018 at 3:18:23 PM UTC+8, Sand Glass wrote:
> This is my code block:
> ###########
> output [NUM_STAGE-1:0]  enable;
> input  [7:0] big_grad_thr;//8'h10 [2:0]
> ###########
> I want to find pattern "[NUM_STAGE-1:0]" "[7:0]",
> I tried '/\[.*\]', but the result is "[7:0] big_grad_thr;//8'h10 [2:0]",
> how can I stop the pattern at the first "]"?

It's good in vim. Then I try to use the regular in perl script, but failed.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Chr. von Stuckrad
On Mon, 30 Jul 2018, Sand Glass wrote:

> On Saturday, July 28, 2018 at 3:18:23 PM UTC+8, Sand Glass wrote:
> > how can I stop the pattern at the first "]"?
> It's good in vim. Then I try to use the regular in perl script, but failed.

Same 'thing', i.e. the shortest match, so (in linux 'man perlre')
as far as I remember a '?' behind the '*' makes it 'non-greedy'
and this \[.*?\] gives 'the next closing ']' .

Stucki

--
Christoph von Stuckrad    * * | also XMPP = |Mail <[hidden email]> \
Freie Universitaet Berlin |/_*| 'jabber' via|Tel(Mo.,Mi.):+49 30 838-75 459|
IT Mathematik & Informatik|\ *|stucki@jabber|  (Di,Do,Fr):+49 30 77 39 6600|
Takustr. 9 / 14195 Berlin * * |.fu-berlin.de|Fax(home):   +49 30 77 39 6601/
                                           

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Tony Mechelynck
On Mon, Jul 30, 2018 at 1:55 PM, Chr. von Stuckrad
<[hidden email]> wrote:

> On Mon, 30 Jul 2018, Sand Glass wrote:
>
>> On Saturday, July 28, 2018 at 3:18:23 PM UTC+8, Sand Glass wrote:
>> > how can I stop the pattern at the first "]"?
>> It's good in vim. Then I try to use the regular in perl script, but failed.
>
> Same 'thing', i.e. the shortest match, so (in linux 'man perlre')
> as far as I remember a '?' behind the '*' makes it 'non-greedy'
> and this \[.*?\] gives 'the next closing ']' .
>
> Stucki

Ah yes, there are several regular-expression "dialects", often quite
similar but not always strictly identical, and depending on whether
you are using grep (which has two: "normal" and "extended"), Vim
(which has four: "very nomagic", "nomagic", "magic" and "very magic"),
perl, less, etc. you need to always use just the precisely right
dialect for whichever RE engine will be interpreting it.

Best regards,
Tony.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Sand Glass
On Monday, July 30, 2018 at 8:13:26 PM UTC+8, Tony Mechelynck wrote:

> On Mon, Jul 30, 2018 at 1:55 PM, Chr. von Stuckrad
> <[hidden email]> wrote:
> > On Mon, 30 Jul 2018, Sand Glass wrote:
> >
> >> On Saturday, July 28, 2018 at 3:18:23 PM UTC+8, Sand Glass wrote:
> >> > how can I stop the pattern at the first "]"?
> >> It's good in vim. Then I try to use the regular in perl script, but failed.
> >
> > Same 'thing', i.e. the shortest match, so (in linux 'man perlre')
> > as far as I remember a '?' behind the '*' makes it 'non-greedy'
> > and this \[.*?\] gives 'the next closing ']' .
> >
> > Stucki
>
> Ah yes, there are several regular-expression "dialects", often quite
> similar but not always strictly identical, and depending on whether
> you are using grep (which has two: "normal" and "extended"), Vim
> (which has four: "very nomagic", "nomagic", "magic" and "very magic"),
> perl, less, etc. you need to always use just the precisely right
> dialect for whichever RE engine will be interpreting it.
>
> Best regards,
> Tony.
  I use some simple regular expression in 'windows search', 'notepad++ search', 'ultraedit search', 'visual studio ENV'. The regular expression is so precisely that I cannot remember all of them. So each time when I using RE in a programming language(c/cpp) or a tool, I will try and try again, until the result is I want.
  Before I post this topic, I only try '*', '.', '+', '?' for RE matching. After I post the topic, I learned the '{n,m}', '-'. Thanks a lot.
  By the way, find a help doc is another way. This is the perl RE online doc:
http://perldoc.perl.org/perlretut.html#Matching-repetitions

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Sand Glass
On Tuesday, July 31, 2018 at 9:46:43 AM UTC+8, Sand Glass wrote:

> On Monday, July 30, 2018 at 8:13:26 PM UTC+8, Tony Mechelynck wrote:
> > On Mon, Jul 30, 2018 at 1:55 PM, Chr. von Stuckrad
> > <[hidden email]> wrote:
> > > On Mon, 30 Jul 2018, Sand Glass wrote:
> > >
> > >> On Saturday, July 28, 2018 at 3:18:23 PM UTC+8, Sand Glass wrote:
> > >> > how can I stop the pattern at the first "]"?
> > >> It's good in vim. Then I try to use the regular in perl script, but failed.
> > >
> > > Same 'thing', i.e. the shortest match, so (in linux 'man perlre')
> > > as far as I remember a '?' behind the '*' makes it 'non-greedy'
> > > and this \[.*?\] gives 'the next closing ']' .
If I use perl script to get the same result in vim. The RE is(match the pattern and remove them):
$line =~ s/\[.*?\]//g

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Michael Wagner
In reply to this post by Sand Glass
On Jul 30, 2018 um 18:46:42, Sand Glass wrote:

> On Monday, July 30, 2018 at 8:13:26 PM UTC+8, Tony Mechelynck wrote:
> >
> > Ah yes, there are several regular-expression "dialects", often quite
> > similar but not always strictly identical, and depending on whether
> > you are using grep (which has two: "normal" and "extended"), Vim
> > (which has four: "very nomagic", "nomagic", "magic" and "very magic"),
> > perl, less, etc. you need to always use just the precisely right
> > dialect for whichever RE engine will be interpreting it.
> >
> > Best regards,
> > Tony.
>
>   I use some simple regular expression in 'windows search', 'notepad++
>   search', 'ultraedit search', 'visual studio ENV'. The regular
>   expression is so precisely that I cannot remember all of them. So
>   each time when I using RE in a programming language(c/cpp) or a
>   tool, I will try and try again, until the result is I want.
>   Before I post this topic, I only try '*', '.', '+', '?' for RE
>   matching. After I post the topic, I learned the '{n,m}', '-'. Thanks
>   a lot.
>   By the way, find a help doc is another way. This is the perl RE
>   online doc:
> For more options, visit https://groups.google.com/d/optout.
> http://perldoc.perl.org/perlretut.html#Matching-repetitions
>
If you are on Linux, you can test 'txt2regex'.

apt show txt2regex
Package: txt2regex
Version: 0.8-5
Description: A Regular Expression "wizard", all written with bash2
builtins
 ^txt2regex$ is a Regular Expression "wizard", all written with bash2
 builtins, that converts human sentences to RegExs. With a simple
 interface, you just answer to questions and build your own RegEx for a
 large variety of programs, like awk, emacs, grep, perl, php, procmail,
 python, sed and vim. There are more than 20 supported programs.

Just my 2ยข
Michael

--
Sound Blaster Pro - A professional way to blow your ears

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

signature.asc (923 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Chr. von Stuckrad
On Tue, 31 Jul 2018, Michael Wagner wrote:

> On Jul 30, 2018 um 18:46:42, Sand Glass wrote:
> If you are on Linux, you can test 'txt2regex'.

Interesting! And a good way to compose for more
than one of the dialects. Bit ALAS, it does
not know (as far as I saw) about 'shortest'
aka non-greedy matches.


--
Christoph von Stuckrad    * * | also XMPP = |Mail <[hidden email]> \
Freie Universitaet Berlin |/_*| 'jabber' via|Tel(Mo.,Mi.):+49 30 838-75 459|
IT Mathematik & Informatik|\ *|stucki@jabber|  (Di,Do,Fr):+49 30 77 39 6600|
Takustr. 9 / 14195 Berlin * * |.fu-berlin.de|Fax(home):   +49 30 77 39 6601/
                                           

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to match the first pattern

Sand Glass
In reply to this post by Michael Wagner
On Tuesday, July 31, 2018 at 4:57:41 PM UTC+8, Michael Wagner wrote:

> On Jul 30, 2018 um 18:46:42, Sand Glass wrote:
> > On Monday, July 30, 2018 at 8:13:26 PM UTC+8, Tony Mechelynck wrote:
> > >
> > > Ah yes, there are several regular-expression "dialects", often quite
> > > similar but not always strictly identical, and depending on whether
> > > you are using grep (which has two: "normal" and "extended"), Vim
> > > (which has four: "very nomagic", "nomagic", "magic" and "very magic"),
> > > perl, less, etc. you need to always use just the precisely right
> > > dialect for whichever RE engine will be interpreting it.
> > >
> > > Best regards,
> > > Tony.
> >
> >   I use some simple regular expression in 'windows search', 'notepad++
> >   search', 'ultraedit search', 'visual studio ENV'. The regular
> >   expression is so precisely that I cannot remember all of them. So
> >   each time when I using RE in a programming language(c/cpp) or a
> >   tool, I will try and try again, until the result is I want.
> >   Before I post this topic, I only try '*', '.', '+', '?' for RE
> >   matching. After I post the topic, I learned the '{n,m}', '-'. Thanks
> >   a lot.
> >   By the way, find a help doc is another way. This is the perl RE
> >   online doc:
> > For more options, visit https://groups.google.com/d/optout.
> > http://perldoc.perl.org/perlretut.html#Matching-repetitions
> >
>
> If you are on Linux, you can test 'txt2regex'.
>
Good! I tried the txt2regex tool, but it do not include javascript language.
Is there a simular tool in windows?

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.