Cam*_*oft 3 php regex backreference
有没有办法在正则表达式模式中支持引用?
示例输入字符串:
Here is "some quoted" text.
Run Code Online (Sandbox Code Playgroud)
假设我想拉出引用的文本,我可以创建以下表达式:
"([^"]+)"
Run Code Online (Sandbox Code Playgroud)
这个正则表达式会匹配some quoted.
说我希望它也支持单引号,我可以将表达式更改为:
["']([^"']+)["']
Run Code Online (Sandbox Code Playgroud)
但是,如果输入字符串混合了引号,说Here is 'some quoted" text.我不希望正则表达式匹配.目前第二个例子中的正则表达式仍然匹配.
我想能做的是如果第一个报价是双引号,那么收盘报价必须是双倍.如果开始报价是单引号,则结束报价必须是单引号.
我可以使用后退参考来实现这一目标吗?
我的另一个相关问题:使用正则表达式在引号之间获取文本
你可以使用正则表达式:
(["'])[^"']+\1
Run Code Online (Sandbox Code Playgroud)
() :用于分组[..]:是char类.所以["']
匹配"或'等同于"|'[^..]:带有否定的char类.它匹配任何未列出的字符^+ :一个或多个的量词\1 :反向引用第一组 (["'])在PHP你用它时:
preg_match('#(["\'])[^"\']+\1#',$str)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3644 次 |
| 最近记录: |