【发布时间】:2018-02-11 00:26:38
【问题描述】:
我被正则表达式困住了。我正在尝试将任何语言的单词匹配到冒号右侧而不匹配冒号本身。
基本规则:
为了使行有效,它不能以
[a-z0-9_]之外的任何字符开头或包含任何字符,直到:之后。:右侧的任何字符都应该匹配,只要该行以上面定义的字符集开头。
例如,给定一个字符串,如下所示:
this string should not match
bob_1:Hi. I'm Bob. I speak русский and this string should match
alice:Hi Bob. I speak 한국어 and this string should also match
http://example.com - would prefer to not match URLs
This string:should not match because no spaces or capital letters are allowed left of the colon
以上 5 个字符串中只有 2 个需要匹配。并且仅在冒号右侧。
Hi. I'm Bob. I speak русский and this string should matchHi Bob. I speak 한국어 and this string should also match
我目前正在使用(^[a-z0-9_]+(?=:)) 来匹配: 左侧的字符。我似乎无法扭转逻辑。
我目前最接近的是(?!(?!:)).+。这似乎与冒号右侧的所有内容以及冒号本身相匹配。我只是不知道如何在匹配中不包含:。
你们中的一个正则表达式向导可以帮助我吗?如果有任何不清楚的地方,请告诉我。
【问题讨论】: