Php 在单引号正则表达式中捕获内容时忽略撇号
我这里的问题是捕获单引号(如“xyz”)中的内容。Php 在单引号正则表达式中捕获内容时忽略撇号,php,regex,pcre,Php,Regex,Pcre,我这里的问题是捕获单引号(如“xyz”)中的内容。 但是撇号,这是同一个符号作为一个单一的引用(')来的方式 我编写的正则表达式是:/(\w\'\w)(*SKIP)(*F)|(\'[^\']*\')/ 我用的例子是:Hello,女士“这是普拉善特的书。” 需要捕捉的是:“这是Prashanth的书。” 但是,最重要的是:“这是Prashanth” 这是我试穿的衣服的链接 非常感谢您的帮助。谢谢大家! 对于您提供的字符串,可以使用正则表达式: \B'\K(?:(?!'\B).)+ 说明: \
但是撇号,这是同一个符号作为一个单一的引用(')来的方式 我编写的正则表达式是:
/(\w\'\w)(*SKIP)(*F)|(\'[^\']*\')/
我用的例子是:Hello,女士“这是普拉善特的书。”
需要捕捉的是:“这是Prashanth的书。”
但是,最重要的是:“这是Prashanth”
这是我试穿的衣服的链接
非常感谢您的帮助。谢谢大家! 对于您提供的字符串,可以使用正则表达式:
\B'\K(?:(?!'\B).)+
说明:
-非单词边界\B
-匹配一个”
”
-忘记目前为止匹配的所有内容\K
-匹配任何字符的1+次出现次数(换行除外),该字符不以(?:(?!”\B)。+
开头,后跟非单词边界“
\B'\K(?:(?!'\B).)+
说明:
-非单词边界\B
-匹配一个”
”
-忘记目前为止匹配的所有内容\K
-匹配任何字符的1+次出现次数(换行除外),该字符不以(?:(?!”\B)。+
开头,后跟非单词边界“
[^\']
捕获包含'
的文本,在您的示例中,这是Prashanth的书。
在文本中包含'
字符。您需要修改正则表达式以使用*?
而不是[^\']
,并且可以这样编写正则表达式
(\w'\w)(*SKIP)(*F)|('.*?'\B)
此外,您不需要转义单个引号”
,因为这在正则表达式中没有特殊意义
从您的示例中,不清楚您是否希望捕获的匹配在匹配周围包含“
。如果您不想在匹配中捕获”
,可以使用基于lookarounds的正则表达式并使用
(?<=\B').*?(?='\B)
(?您不能使用[^\']
捕获包含'
的文本,在您的示例中,这是Prashanth的书。
在文本中包含'
字符。您需要修改正则表达式以使用*?
而不是[^\']
,并可以这样编写正则表达式
(\w'\w)(*SKIP)(*F)|('.*?'\B)
此外,您不需要转义单个引号”
,因为这在正则表达式中没有特殊意义
从您的示例中,不清楚您是否希望捕获的匹配在匹配周围包含'
。如果您不希望在匹配中捕获'
,您可以使用基于lookarounds的正则表达式并使用此
(?<=\B').*?(?='\B)
(?很乐意帮忙:)你否决了这个问题吗?有人否决了!我不明白为什么!:(@PrashanthBenny:不,我没有投反对票。如果我投了反对票,为什么我要回答一个问题。另外,在regex tag中的问题上投反对票是一个正常的趋势。无论如何,请接受我的反对票,因为你的问题很好,你展示了你对样品的尝试。非常感谢你对Pushpesh的支持。这让我的一天没有被搞砸s的问题…我实际上根本没有把\B看作一种可能性:D被邀请帮助:)你否决了这个问题吗?有人否决了!我不明白为什么!:(@PrashanthBenny:不,我没有投反对票。如果我投了反对票,为什么我要回答一个问题。另外,在regex tag中的问题上投反对票是一个正常的趋势。无论如何,请接受我的反对票,因为你的问题很好,你展示了你对样品的尝试。非常感谢你对Pushpesh的支持。这让我的一天没有被搞砸s的问题…我实际上根本没有把\B视为一种可能性:DWow,\K
。多年来一直不知道它…谢谢!哇,\K
。多年来一直不知道它…谢谢!