Regex 正则表达式以匹配冒号右侧的字符
我被正则表达式卡住了。我试图将任何语言中的单词匹配到冒号的右侧,而不匹配冒号本身 基本规则:Regex 正则表达式以匹配冒号右侧的字符,regex,pcre,Regex,Pcre,我被正则表达式卡住了。我试图将任何语言中的单词匹配到冒号的右侧,而不匹配冒号本身 基本规则: 要使一行有效,在:之后,该行不得以[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
- 要使一行有效,在
之后,该行不得以:
以外的字符开头或包含任何字符[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个需要匹配。只在结肠的右边
你好。我是鲍勃。我说的是БССц,这个字符串应该匹配
你好,鲍勃。我说한국어 此字符串也应匹配
(^[a-z0-9_]+(?=:)
来匹配:
左侧的字符。我似乎无法改变这种逻辑
目前我最接近的是(?!(?!:)。+
。这似乎与冒号右边的所有内容以及冒号本身都匹配。我就是想不出如何在比赛中不包括:
你们中的一个正则表达式向导能帮我吗?如果有什么不清楚的地方,请告诉我 您可以使用此正则表达式:
^[a-z0-9_]+:\K(?!//).*
正则表达式分解:
:开始^
:匹配1+个[a-z0-9\]+
字符[a-z0-9\]
:匹配冒号:
:重置到目前为止匹配的信息\K
:反向前瞻,禁止在冒号后面紧跟(?!//)
,以避免匹配潜在的URL/
:匹配任何内容直到结束*
^.*?:(.*)$
^.*?:
-从行首开始,直到冒号(非贪婪)为止的任何字符都包括在内
(.*)$
-将匹配组用于其后的任何内容,直到行尾
短正则表达式模式(不区分大小写):
-匹配任何单词字符(等于\w
)[a-zA-Z0-9\
正如您标记的那样,
pcre
,下面是您需要的模式(仅在冒号的右侧):
-重置报告匹配的起点。任何以前使用的字符将不再包含在最终匹配中\K
我试图不匹配冒号。只有它右边的字符。然后你可以使用:
^[a-z0-9+:\K(?!/).
还记得\w
也会匹配你写的不想匹配的大写字母。我正在尝试匹配冒号右边的字符,而不匹配冒号本身。@I0\u ol,查看我的pcre
模式,这正是我需要的。非常感谢。
^\w+:(\w.*)
^\w+:\K\w.*