我正在使用此RegEx来匹配冒号之前的单词。
([^\s]+)\:
但是,如果 行以连字符/破折号开头,我将如何更改此设置以便仅匹配该字词?
修改
应匹配:
[object doSomething:foo];
不应该匹配:
- (void)doSomething:(NSString *)string;
答案 0 :(得分:1)
在多行模式下尝试此正则表达式:
^[^\r\n:-][^\r\n:]*:\s*
答案 1 :(得分:0)
^[^:-].*?:\s*
应该做的伎俩。 (假设未使用DOT_ALL
修饰符。)
[^:-] // One char, not a hyphen or colon
.*? // Perhaps more, non-greedy
:\s* // Colon and optionally spaces
Ergo:第一个冒号前至少有一个字符。第一个字符不能是连字符或冒号。
如果您觉得更容易阅读,请另外^[^:-][^:]*:\s*
。
修改强>:
根据评论,这是解决OP问题的原因:
^([^:-][^:]*):