试图理解.NET正则表达式

Sam*_*eby 3 .net c# regex

我一直在做很多关于.NET正则表达式的阅读,我已经开发了一个正则表达式,我无法理解.

(src|href)="\w+|(\w+/)+
Run Code Online (Sandbox Code Playgroud)

我读这个正则表达式的方式:

  1. 完全匹配"src"或"href"
  2. 其次是="
  3. 接下来匹配1个或多个单词字符([a-zA-Z0-9_])或一个或多个(一个或多个单词字符后跟/)

这是为了匹配'src ="Folder','src ="folder /','href ="Folder/SubFolder /'等.

输入:

<!DOCTYPE html>
<html xmlns ="http://www.w3.org/1999/xhtml">
<head>

使用此正则表达式,使用此输入,有一个匹配项.

组织/ 1999 /

任何人都可以解释一下吗?整个字符串中没有引用Src或href,怎么会有任何匹配?

m.e*_*son 6

这里发生的是| 正在将正则表达式分成两个完全独立的条件.即选择:匹配第二位的(src|href)="\w+OR (\w+/)+:

org/1999/

在您的情况下,您可能需要将最后一部分放在括号中,以明确交替|引用的确切内容:

(src|href)="(\w+|(\w+/)+)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我用Expresso来帮助解决这个问题.