Regex 使用正则表达式选择双引号(而不是引号本身)之间的所有文本

Regex 使用正则表达式选择双引号(而不是引号本身)之间的所有文本,regex,shell,Regex,Shell,使用正则表达式,我想知道如何选择双引号内的所有文本,但不选择双引号 例如,我希望表达式选择“domain.com”而不是“domain.com” 编辑:这将在Shell脚本中使用,但我目前正在Notepad++中对此进行测试,希望我已经理解了这个问题。这将捕获双引号内的任何内容(不带引号): 你可以用环顾四周 (?<=").*?(?=") 你在使用哪种语言?谢谢你发现了这一点,@MichaelT!这个问题的海报是在Ruby编程的背景下提出的,而答案实际上并没有为我回答这个问题。@nu11

使用正则表达式,我想知道如何选择双引号内的所有文本,但不选择双引号

例如,我希望表达式选择“
domain.com
”而不是
“domain.com”


编辑:这将在Shell脚本中使用,但我目前正在Notepad++中对此进行测试,希望我已经理解了这个问题。这将捕获双引号内的任何内容(不带引号):


你可以用环顾四周

(?<=").*?(?=")

你在使用哪种语言?谢谢你发现了这一点,@MichaelT!这个问题的海报是在Ruby编程的背景下提出的,而答案实际上并没有为我回答这个问题。@nu11p01n73R我目前正在Notepad++中进行测试,但计划将其添加到Shell脚本中。请注意Notepad++中的搜索函数比Shell中的正则表达式更强大(我假设*nix类似Shell)。我不认为shell支持look-around(假设一个*nix-like shell)@nhahdh-Op想要在notpad++中测试,它将在notpad++中工作。但对于壳牌,我担心它可能无法工作。谢谢你。regex成功了,那个网站真是天赐之物!我来测试一下,应该没问题。@MissM,不客气。但是lookbehind可能并不适用于所有的外壳和平台。确保它适用于您的工具。或者使用一些功能强大的工具,比如grep或perlI,应该注意,regexgrep使用的是不允许lookbehind的,但是这个答案仍然非常有用。编辑:我刚刚看到了你的编辑,并将试用它们,@nu11p01n73R。谢谢实际上,引号将包含在匹配中(因此它们也将被“选中”),但捕获组允许您直接访问它们之间的文本。也许这就足够了。
(?<=").*?(?=")
$ echo \"domain.com\" | grep -oP '(?<=").*?(?=")'
domain.com