我有一个类似的字符串
(Closedate<= '20210415') and (Type ='DynamicLettersLetterMix')
我想用JavaScript中的正则表达式将其简化为CCD_ 1。
DynamicLettersLetterMix
以英语为基础,可能包含数字。如果Type
只是一个数字(例如:(Closedate<= '20210415') and (Type ='1')
(,我知道如何进行归约:
replace(/ands*(s*Types*='d*')/i,"")
我不知道如何使用动态字符串Type
来实现这一点。
我该怎么做?
您可以使用
.replace(/s*bands*(s*Types*='[^']*')/gi, '')
请参阅regex演示。
详细信息:
s*
-零个或多个空白b
——一个词的边界and
-一个词and
(Closedate<= '20210415')
0-零个或多个空白(
-一个(
字符s*
-零个或多个空白Type
-一个词Type
s*
-零个或多个空白='
-='
字符串[^']*
-除'
之外的任何零个或多个字符,尽可能多')
—')
字符串
查看JavaScript演示:
const text = "(Closedate<= '20210415') and (Type ='1 DynamicLettersLetterMix 2-4;')";
console.log(text.replace(/s*bands*(s*Types*='[^']*')/gi, ''));
您只需匹配所需的片段:
const input = "(Closedate<= '20210415') and (Type ='DynamicLettersLetterMix')";
const result = input.match("\(Closedate\s*[<>=]+\s*'[0-9]+'\)")[0];
console.log(result);
Regex解释