我想捕捉两个冒号之间的任何单词。我试过这个(try on Rubular):
(\:.*\:)
您好:姓名:
你今天在做什么,:标题:?
$:name:,有一个可爱的:事件:。
它除了捕获它的最后一行之外还有效:
比赛3
1.:name :,有一个可爱的:事件:
它被第二个(关闭)冒号和第三个(开放)冒号绊倒了。它应该在最后一行单独捕获:name:
和:event:
。
答案 0 :(得分:6)
你需要一个非贪婪的正则表达式:
(\:.*?\:)
.*?
将匹配最短的字符串,而.*
匹配找到的最长字符串。
答案 1 :(得分:3)
答案 2 :(得分:2)
(\:[^:]*\:)
[^:]
表示“除了'之外的任何东西:'。
请注意,此表达式也会与“::”匹配。
以下是您更新的rubular链接:http://rubular.com/r/VtwhIqtbli。