Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是使用正则表达式的初学者,我正在寻找一种用冒号分割字符串的模式,该冒号前面没有星号。
我发现了以下我认为可行的模式,但没有。
[^:]+\\*:[^:]+
(\*被转义为在 Objective-C 编译器中工作)
\*
我需要改变什么?
您需要使用负面的后视:
(?<![*]):
此正则表达式匹配colon(:)前面没有 -> (?<!..)a *->的 a [*]。在字符类中使用*,它失去了它的意义,只匹配一个*.
colon(:)
(?<!..)
*
[*]
不是星号的单个字符可以这样表示:[^*]. 这会将星号放入一个没有特殊含义的字符类中。紧跟在左大括号后面的插入符号否定了字符类。
[^*]
匹配前面不是星号的冒号可以简单地写成[^*]:
[^*]:
要仅获取用于定位的冒号,请将其单独放入一个组中:[^*](:)
[^*](:)