regex - 如何用正则表达式匹配双引号或单引号或不带引号?

标签 regex

我试图从所有三种类型的输入中获取一些文本,但无法弄清楚如何处理未引用的情况。

到目前为止我有:

name=['"](.*?)['"]

输入:

name="sometext"
name='sometext'
name=sometext

最佳答案

看起来您是 C# 开发人员,因此您可以使用第一个匹配组来确保它以相同的引号结束(因此支持 phrase="Don't forget apostrophes" ).

Regex regex1 = new Regex(@"=(?:(['""])(.*?)\1|.*)");

string text = @" 
name=""don't forget me""
name='sometext'
name='sometext'
name=sometext
";

foreach (Match m in regex1.Matches(text))
   Console.WriteLine (m.Groups[2].Value);

关于regex - 如何用正则表达式匹配双引号或单引号或不带引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324279/

相关文章:

html - HTML 的验证正则表达式

javascript - 从 Javascript 中的推文中删除 'RT @name'

javascript - 请有人帮我理解正则表达式的 exec 方法吗?

C# 正则表达式问题

正则表达式匹配后的第一个单词和特定行中的最后一个单词

regex - python : extract all placeholders from format string

java - 正则表达式替换添加不需要的附加括号

javascript - 当字符串甚至不匹配时检查返回 true (RegEx)

r - 如何操作一列的两 block ?

Java matchesAt() 在 C# 中等效