【问题标题】:Regex that matches word-characters inside quotes "example"?匹配引号“示例”内的单词字符的正则表达式?
【发布时间】:2013-02-22 05:04:13
【问题描述】:

我正在尝试创建一个正则表达式,它匹配包含在某些符号 EG: 中的单词字符 + 白色字符:引号。

EG:

one "two" three four "five six"

我的正则表达式应该匹配“二”和“五六”

我正在尝试使用 /^(\"\w+\")/ 和类似的,但我无法做到。

如何找到包含在特定符号中的正则表达式?

【问题讨论】:

    标签: php regex


    【解决方案1】:

    摆脱^ 锚。 ^ 将匹配限制在字符串的开头。你也不需要转义双引号:\""

    \w+ 更改为.+?[^"]* 以匹配空格。

    /(".*?")/
    

    【讨论】:

    • 对不起,我的问题有答案,引号内的单词字符可以有空格。你能编辑答案吗?
    【解决方案2】:

    试试这个:

    $str = 'one " two test " three four "five" six';
    
    preg_match_all('/"(?P<words>\s*\w+[\s\w\s]*)"/',$str,$match);
    
    echo "<pre>";
    print_r($match['words']);
    

    【讨论】:

    • 已编辑答案请立即查看
    • 对不起,我的问题有答案,引号内的单词字符可以有空格。你能编辑答案吗?
    • 已编辑答案请查看
    • 我可以让它工作,唯一的问题是结果作为匹配的子数组返回,我怎样才能简单地将结果保存在匹配中?
    • $new_var = $match['words']; 可以吗?
    【解决方案3】:
    regexp("/^[a-zA-Z0-9.\'\"]$/i",$variable_name)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多