|
That site finds all five matches for me.
Demo[^]
Screenshot[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Needed to turn on the global flag...
Thank you!
|
|
|
|
|
Hello,
I would like to process a regex to look for only the internal links containing the rel="noopener"
For example search for this link:
<a href="https://www.linkinterno.it/2018/10/titolo/" target="_blank" rel="noopener"> anchor text </a>
In this case the regex should be:
href="https://www.linkinterno.it(.*?)rel="noopener"
and it should work as I checked it with the following regex test:
https://www.freeformatter.com/regex-tester.html
However, I am not looking for internal links correctly, only those with rel="noopener". How can I solve?
Thank you
|
|
|
|
|
Try this
href="https:\/\/www.linkinterno.it.*rel="noopener"
I had to escape the forward slashes '/' to try it in some of the regex testers so depending on the flavour of regex you are using you may need to remove them.
|
|
|
|
|
Thanks a lot
So, the concept is to find out if inside an href there is the site name (so that I can understand that it is an internal link) and that it contains the rel="noopener".
I have adapted the regex to the best, modifying it like this:
www.sito.it. * rel = "noopener"
and removing the https: // protocol which can generate errors.
Unfortunately, however, something is still wrong. I state that the regex I need for a seo spider (ScreamingFrog), in which it is possible to set the targeted regex for searches within a website.
I await your clarifications on this.
Thanks a lot
|
|
|
|
|
Without knowing what the internal link actually looks like it is difficult to help.
Assuming that an internal link looks like this
href="/2018/titolo"
You could try this
.*href=("https:\/\/www.linkinterno.it|"\/).*(rel="noopener").*
You would obviously have to check the first group to see if the 'https://'www.linkinterno.it"' was matched or just the '/' and then look at the second group to see if the rel="noopener" was matched.
|
|
|
|
|
Thanks for the reply,
I tried but all links containing rel noopener are searched. I'm interested in searching for internal links only, and can be recognized by the name of the site in the link. For example, if the site is https://www.sitoprova.it, in href there must be the name of the site at the beginning of the link, i.e.
|
|
|
|
|
With the sample text-strings you've provided, its impossible for any expression to match by 'internal' domain.
If your application has a %variable% to represent the domain being searched, you would have to provide this.
Regex simply matches text, it cant determine if that text is "the domain being searched" by your application.
I've seen apps that support variables like %domain% in their match-expressions, but they're specific to that application.
So if your app supports this, you'd have to look up the variable-name in the documentation, to provide a working example.
Short of that, you would need to either hard-code the domains per site being searched, like in the example provided.
Or include a larger snippet of the html, but only if the html offered another way to verify 'internal' (highly unlikely).
Sorry for the news, but regex wont solve this without 'internal' being defined, whether by a previous match, or by some variable.
Some apps even let you customize variables, so maybe thats another option? Sorry, but I know nothing of this "Screaming Frog".
Either way, I do wish you luck!
modified 5-Oct-21 21:01pm.
|
|
|
|
|
What can be the RegEx for matching all spaces in quotes but not quotes..
Example: "This is testing text"
My RegEx: (?<=\")\s+(?=\")
The above RegExp is not matching all spaces..
|
|
|
|
|
The \s+ in that regex will only match a single string of one or more consecutive whitespace characters, not "all spaces"
So your regex would match "This test" or "This test" but not "This is testing"
There are lots of online regex builders and analysers, which I suggest you seek out.
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Sorry,
do you suggest me a regex to find in a page not properly closed href tags, like this?
<a href="https://www.sito.it/" target="_blank" rel="noopener"property</a>
In practice, the final ">" is missing. Can you suggest a regex that can detect this?
Thanks and good job
|
|
|
|
|
|
Ok Richard,
thaks a lot
|
|
|
|
|
|
|
The commonest way that people solve this for browsers that don't support this is to think in reverse. In other words, you reverse the string and the regular expression so that all you end up testing is the negative regular expression, rather than a lookbehind. This[^] is a great resource.
|
|
|
|
|
My Customer number is in the pattern : 88765
ie. 5 digits alone...
using regex i have to validate if there are any characters and special characters in the customer number. Incase there are any characters (eg: 8AB90) or special characters then my string is invalid.
Please help me with the RegEx for the same.
|
|
|
|
|
poornima sadasivan wrote: validate if there are any characters and special characters in the customer number. An easier way it to check to make sure all characters are numbers. This uses LINQ. For example:
return strVar.All(char.IsDigit);
|
|
|
|
|
Following should do it in perl, java and C#.
^[0-9]{5}$
|
|
|
|
|
Hello -
I have the following string:
[ CmdAV=show CmdArgAV=policy-map CmdArgAV=system CmdArgAV=type CmdArgAV=network-qos CmdArgAV=<cr> ]
Is it possible to use regex to leave only:
show policy-map system type network-qos <cr>
I don't need the [,], or CmdAV or CmdArgAV.
|
|
|
|
|
This should do the trick:
/C\w+=|[[\]]/g
|
|
|
|
|
Great, this does work. Thank you!
Is it possible to capture the remained words into a single group?
|
|
|
|
|
Hello,
I have a question on regex: Is it possible to match for certain characters (and replace them) in only a part of a string? E. g.
str="I want to solve this problem"
I now want to match all spaces after the first occurence of the letter, say, "v". I know I can filter the whole part of the string after (and including) the first v with the regex "v.*", but how to match the spaces only in that part?
Thank you!
|
|
|
|
|
Depends on the regex engine you're using.
For example, in C#, you can use a zero-width positive look-behind assertion[^]:
Regex re = new Regex("(?<=.*v.*)\s+");
string[] parts = re.Split("I want to solve this problem");
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thanks, Richard, for your answer!
I am using regex with javascript, developing for popular browsers.
So, if I understand correctly, your code splits the string into 3 parts, the first part being everything until the first space after the first "v", the other parts being the rest of the string split by spaces. I am sure that will work.
Well, what I was looking for - this is a more theoretical and general question - is there an operator you can use in regexes which does something like "apply the following only to the previously matched part"? For example:
/v.*#c/g
Explanation: The first part of the regex is "v.*" which means: Match the part of the string after the first v. The second part is "c", which will match every c. Now, is there an operator (here symolized by #) between the 2 parts of the regex, which means: "Apply the part after this operator ("c") to the result of the part before the operator ("v.*)"? It is like: Do a secondary match inside the primary match.
Sorry, English is not my native language, but I still hope, I could make my point clear.
Thank you.
|
|
|
|