2

我是使用正则表达式的初学者,我正在寻找一种用冒号分割字符串的模式,该冒号前面没有星号。

我发现了以下我认为可行的模式,但没有。

[^:]+\\*:[^:]+

\*被转义为在 Objective-C 编译器中工作)

我需要改变什么?

4

2 回答 2

6

您需要使用负面的后视

(?<![*]):

此正则表达式匹配colon(:)前面没有 -> (?<!..)a *->的 a [*]。在字符类中使用*,它失去了它的意义,只匹配一个*.

于 2013-02-11T20:59:11.287 回答
0

不是星号的单个字符可以这样表示:[^*]. 这会将星号放入一个没有特殊含义的字符类中。紧跟在左大括号后面的插入符号否定了字符类。

匹配前面不是星号的冒号可以简单地写成[^*]:

要仅获取用于定位的冒号,请将其单独放入一个组中:[^*](:)

于 2013-02-11T21:10:30.987 回答