簡體   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