2015-03-02 46 views
-3

我必须确保字符串中没有单个'字符。因此,我正在寻找一个正则表达式,它可以找到所有单个字符。两个''必须不匹配。正则表达式检测单个'仅限且排除两个''

'adsfadsf''asdfasdf'asdfasfd'' ==> two machtes 
''adsfadsf''asdfasdf''asdfasfd'' ==> no match 

我试过不同的东西,但都匹配''

'{1} 
'[^'] 
'(?!') 

任何想法?

+2

什么味道*正则表达式的*匹配的单引号?它很重要(有些人有负面看法/有些看不到)。你想对结果做什么? (这也可能很重要,就实用的解决方案而言,你不能只用正则表达式来实现,因为你没有消极的后顾之忧。) – 2015-03-02 08:31:04

+0

你可以给这个问题更多的背景吗?你为什么要这样做? – 2015-03-02 09:03:51

+0

在主题的开头和结尾处添加了匹配的负向预测,即'^'''或'''$'。 – 2015-03-02 09:13:43

回答

0

你可以试试下面的基于lookaround的正则表达式。

(?<!')'(?!') 

DEMO

如果你正在运行的JavaScript,那么你可以试试下面的正则表达式。但它也会捕获前一个角色,我认为它不会为您造成任何问题。

(^|[^'])(')(?!') 

DEMO

获得来自组索引2

+0

或'''(* SKIP)(* F)|'' – 2015-03-02 08:42:22

+0

对不起,我忘了提及,我需要JavaScript的正则表达式。 Lookbehind,* SKIP或* F不支持JavaScript。 – BetaRide 2015-03-02 09:02:00

+1

@BetaRide这是Crowder刚刚问到的原因。为什么你没有在同一时间进行互动? – 2015-03-02 09:07:30