繁体   English   中英

正则表达式匹配基于条件

[英]regex match based on condition

我有以下字符串

test test.a test.b test.a.b test2.a test2 test2.a.b

和以下的正则表达式

/(test(\.)(\S*)?)/gi

这将返回以下test.a test.b test.ab我想要的是返回test

如果我做(\\.)? 可选它test2.a返回test2.a ,我不希望这样。

我正在寻找的是有条件。 如果在测试返回test.whatever.else之后有一个点,如果test返回test后有空格,否则不匹配任何东西。

实例: https//regex101.com/r/ZendrY/3

您可以将此正则表达式与DOT的可选匹配一起使用,然后在test后使用一个或多个非空格字符,并使用任一侧的字边界包装:

/\btest(?:\.\S+)?\b/

RegEx演示

您可以使用交替,以便test后跟点或空格,而不是使点可选:

/test(?= )|(test(\.)(\S*)?)/gi

您可以尝试添加\\ b以匹配单词end,例如:

/(test(\\.?\\b)(\\S*)?)/ig

......或积极向前看:

/(test?(?=[\\. ])(\\S*))/ig

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM