using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<!```html\s*)(<link href=.*?)(?=^\s*$)";
string input = @"
# PATTERNS
## Style Blocks (2 patterns)
- ***Matches:***
- All `<style> any code here </style> blocks that aren't preceded by ```css + any amount of optional whitespace
>> NOTES FOR THE FOLLOWING PATTERN:
• This requires the `regex` library, not Python's built-in-crap
• This requires the `Single Line` (regex101) or `regex.DOTALL` (Python regex) flag
### Pattern: Old version (would have replaced all punctuation with `punctuation` from the string library)
(?<!```css\s*)(\<style\>[\sa-z0-9\-\.\[\{\]\}:;#]+\<\/style\>)
>> NOTES FOR THE FOLLOWING PATTERN:
• This requires the `regex` library, not Python's built-in-crap
• This requires the `Single Line` (regex101) or `regex.DOTALL` (Python regex) flag
### Pattern: Newest version (much better)
(?<!```css\s*)(<style>.*?<\/style>)
## This does the same thing but for `<!DOCTYPE html> any code here </html>`
>> NOTES FOR THE FOLLOWING PATTERN:
• This requires the `regex` library, not Python's built-in-crap
• This requires the `Single Line` (regex101) or `regex.DOTALL` (Python regex) flag
### Pattern:
(?<!```html\s*)(<!DOCTYPE html>.*?<\/html>)
## This matches all blocks of code containing `<link href=>` up to, but not including, an empty line
>> NOTES FOR THE FOLLOWING PATTERN:
• This requires the `regex` library, not Python's built-in-crap
• This requires the `Single Line` (regex101) or `regex.DOTALL` (Python regex) flag
### Pattern:
(?<!```html\s*)(<link href=.*?)(?=^\s*$)
<br>
(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)(><)
<br>
# TEST TEXT
<br>
<style>
.list-group-mine .list-group-item {
background-color: black;
color: white;
border-top: 1px solid #0091b5;
border-left-color: #fff;
border-right-color: #fff;
}
.list-group-mine .list-group-item:hover {
background-color: red;
}
</style>
```css
<style>
.list-group-mine .list-group-item {
background-color: black;
color: white;
border-top: 1px solid #0091b5;
border-left-color: #fff;
border-right-color: #fff;
}
.list-group-mine .list-group-item:hover {
background-color: red;
}
</style>
```
<link href=""https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"" rel=""stylesheet"" integrity=""sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"" crossorigin=""anonymous"">
<div class=""list-group list-group-mine"">
<a class=""list-group-item"" href=""https://bit.ly/3SICqay""><strong>Link to the SO Post</strong></a>
<a class=""list-group-item"" href=""/path""><strong>Item 2</strong></a>
<a class=""list-group-item"" href=""/path""><strong>Item 3</strong></a>
</div>
<br>
##### Before Bootstrap
<!DOCTYPE html>
<html lang=""en"">
<head>
<title>TABLE</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Name</th>
<th>Number</th>
</tr>
</thead>
<tbody>
<tr>
<td>Malachi</td>
<td>1-555-343-9867</td>
</tr>
<tr>
<td>Steve</td>
<td>1-555-734-8857</td>
</tr>
</tbody>
</table>
</body>
</html>
</br>
<code style=""color: #f51686; font-weight: bold; font-size: 16pt;""> The HTML </code>
```html
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"" />
<meta http-equiv=""X-UA-Compatible"" content=""IE=edge"" />
<meta name=""viewport"" content=""width=device-width, initial-scale=1.0"" />
<title>CSS Images</title>
<link rel=""stylesheet"" href=""css/style.css"" />
</head>
<body>
<div class=""container"">
<section class=""hero"">
<figure class=""profile-pic-figure"">
<img
src=""img/profile-800x800.png""
alt=""profile""
width=""800""
height=""800""
title=""Profile Pic""
/>
<figcaption class=""offscreen"">Pookie Scrumptious</figcaption>
</figure>
<h1 class=""h1"">
<span class=""nowrap"">
Hello 👋
</span>
<span class=""nowrap"">
I'm Pookie
</span>
</h1>
</section>
</div>
</body>
</html>
```
<br>
<code style=""color: #f51686; font-weight: bold; font-size: 16pt;""> The CSS</code>
";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.Singleline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx