Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 匹配HTML和Javascript文件中的文件路径_C#_Regex - Fatal编程技术网

C# 匹配HTML和Javascript文件中的文件路径

C# 匹配HTML和Javascript文件中的文件路径,c#,regex,C#,Regex,如果有人能帮我解决正则表达式的很多问题 基本上,我需要一个正则表达式,可以在html,css,javascript文件点 用单引号或双引号括起来 我已经走了这么远了。(\“|”)([^“|”\\\”*)*。*(\“|”) 我用的是C# 请参阅链接 但是如果你看看我在底部的测试,我在一行上有多个匹配项,它失败了 任何帮助都将不胜感激 使用非贪婪或懒惰的*?量词,而不是*来匹配无限数量的重复,但要以非贪婪的方式。(即进行最短的比赛) 此外,在要求包含点之后,您忘记了排除零件中的空格和引号 测试此版

如果有人能帮我解决正则表达式的很多问题

基本上,我需要一个正则表达式,可以在html,css,javascript文件点 用单引号或双引号括起来

我已经走了这么远了。
(\“|”)([^“|”\\\”*)*。*(\“|”)

我用的是C#

请参阅链接

但是如果你看看我在底部的测试,我在一行上有多个匹配项,它失败了


任何帮助都将不胜感激

使用非贪婪或懒惰的
*?
量词,而不是
*
来匹配无限数量的重复,但要以非贪婪的方式。(即进行最短的比赛)

此外,在要求包含点之后,您忘记了排除零件中的空格和引号

测试此版本的正则表达式:

(?<quote>\"|\')(?<file>[^\"\'\s]*?\.[^\"\'\s]*?)\k<quote>
(?\“\\”)(?[^\“\'\s]*?\.[^\“\'\s]*?)\k

进一步改进:

  • 使用命名的捕获组
  • 根据字符串的开头,在模式的末尾使用反向引用来匹配双引号或单引号

或者,如果还希望匹配单引号和双引号混合的文件名,请使用以下变体:

(?:\"|\')(?<file>[^\"\'\s]*?\.[^\"\'\s]*?)(?:\"|\')
(?:\“\”)(?[^\“\”\s]*?\.[^\“\”\s]*?)(?:\“\”\s]*)
  • 使用命名捕获组作为文件名
  • 对引号使用非捕获组

我们可以使用否定字符类:

['"][^'" ]+?\.[^'" ]*?['"]

说明

  • 如果有

HTML是不规则的,所以你永远不应该在HTML上使用正则表达式。我不知道C。但这对你的例子很有用:[a-zA-Z0-9\/]+\(png | jpg | js)@wp78de非常好用!谢谢!!请添加作为答案并接受!@LennyD好的,谢谢。