php - 正则表达式:如何匹配转义的双引号字符串?

标签 php python ruby regex

我有如下字符串:

\"Some text inside here. And perhaps special chars including newlines...\" then more text (out here)

我如何简单地匹配并返回转义双引号之间的内容,丢弃其余内容?

最佳答案

你不能使用这种模式:

    \".*\"

因为“点”不匹配换行符,除非你使用标志“s”使“点”匹配所有内容(包括换行符)

甚至更多此模式与此示例不匹配:

    "this is a quoted text" and "this is another one"

上面的模式将匹配整个字符串而不是两个引用的文本。 (因为 .* 是贪婪的并且会匹配它可以匹配的最长字符串,在本例中是整个字符串。)您应该使用 .*?这使得模式“勉强”并且它会匹配它可以匹配的最短字符串。

因此,为了将其包装起来,您可以将此模式与标志“s”(点匹配所有)一起使用:

    \".*?\"

或者使用这个:

    \"[^"]\"

不需要“s”标志。 (因为 [^"] 匹配除包括换行符的 "以外的任何内容。)

(我不熟悉 PHP 语法,所以您应该自己注意应用标志和转义字符。)

关于php - 正则表达式:如何匹配转义的双引号字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9679717/

相关文章:

php - 推送器 PHP "server"不工作

javascript - 如何动态创建多个 jquery 数据表?

php - 如何从wp-config.php中读取值(PHP定义的常量)?

PHP - 自动刷新页面

python - 循环播放音乐,直到释放一个键。 Python

python - 如何让 Google App Engine 在下载过程中进行gunzip?

python - 我可以关闭 Azure DevOps 管道中的并行作业吗?

ruby-on-rails - 基于循环 block 删除数组元素

ruby - Sinatra 中临时文件的 send_file

html - 在 View 内调用查询( Controller 操作)