I need to find a word this within <template> and </template>:
I tried <template>([this])*?<\/template> but it doesn't seem to work.
https://regex101.com/r/VmGESa/1
CodePudding user response:
You do not need the multiline m flag and . doesn't match linebreaks so you have to account for that.
E.g.
<template>(?:.|\r|\n)*?(this)(?:.|\r|\n)*?<\/template>
https://regex101.com/r/krkP9d/1
CodePudding user response:
Your regular expression is matching strings that
- are starting with
<template>, - followed by an arbitrary combination of the characters
t,h,iorswith arbitrary length, e.g.,thssiththissiththhthtwould be matched by([this])*, - are ending with
</template>,
Does this solution work for you?
<template>(?:.|\n|\r)*(this)(?:.|\n|\r)*<\/template>
.* matches an arbitrary number of arbitrary characters, except for new lines. So, I added \n and \r with the OR operator |. (?:...) means, it's a non-capturing group, i.e., when asking for groups, this group won't show up.
