Regex 正则表达式检查关键字的大小写

Regex 正则表达式检查关键字的大小写,regex,Regex,假设我有一个关键字ProcessTest,我想匹配所有没有大写的匹配项,以便用拼写正确的关键字替换它们 PROCESSTEST >> ProcessTest Processtest >> ProcessTest proceSstest >> ProcessTest 等等 因此,我首先需要对关键字进行不区分大小写的匹配,然后对拼写正确的关键字进行区分大小写的检查 PROCESSTEST >> ProcessTest Processtest >

假设我有一个关键字
ProcessTest
,我想匹配所有没有大写的匹配项,以便用拼写正确的关键字替换它们

PROCESSTEST >> ProcessTest
Processtest >> ProcessTest
proceSstest >> ProcessTest
等等

因此,我首先需要对关键字进行不区分大小写的匹配,然后对拼写正确的关键字进行区分大小写的检查

PROCESSTEST >> ProcessTest
Processtest >> ProcessTest
proceSstest >> ProcessTest

任何关于如何使用正则表达式的建议?

我完全同意@casimir et hippolyte,只需将单词全局匹配为大小写不敏感选项(
gi
),然后替换它

代码在每种语言中都非常简单和高效。为什么在不必要的情况下增加复杂性?;)

这是一个示例

var text=“这是ProCeSSTesT或ProCeSSTesT或ProCeSSTesT。这是FooBAR或martyMCfly或FooBAR”
var words=[“ProcessTest”、“FooBar”、“MartyMcFly”]
words.forEach(函数(word){
var re=新的RegExp(单词“gi”)
text=text.replace(re,word)
})

console.log(text)
我完全同意@casimir et hippolyte,只需将单词全局与大小写不敏感选项(
gi
)匹配,然后替换它即可

代码在每种语言中都非常简单和高效。为什么在不必要的情况下增加复杂性?;)

这是一个示例

var text=“这是ProCeSSTesT或ProCeSSTesT或ProCeSSTesT。这是FooBAR或martyMCfly或FooBAR”
var words=[“ProcessTest”、“FooBar”、“MartyMcFly”]
words.forEach(函数(word){
var re=新的RegExp(单词“gi”)
text=text.replace(re,word)
})

console.log(text)
这是个错误的好主意,不要区分。构建一个模式以匹配关键字大写与否并将其转换。在此处发布您的代码无需使用正则表达式,只需执行不区分大小写的搜索并替换即可。任何文本编辑器都可以that@casimir-让希波利特明白,谢谢。这是一个错误的好主意,不要区分。构建一个模式以匹配关键字大写与否并将其转换。在此处发布您的代码无需使用正则表达式,只需执行不区分大小写的搜索并替换即可。任何文本编辑器都可以that@casimir-et hippolyte已清除,谢谢。请小心使用
(^ |\s)(processtest)(\s |$)
,因为它无法匹配两个连续的关键字(因为空格重叠):
“processtest processtest”
。使用单词边界(如果可能的话)更简单:
\bprocesstest\b
或者如果关键字有非单词字符,并且分隔符是一个空格,可以使用前视:
(^ |\s)processtest(?!\s)
你说得对,这个方法也有效,
\W
\s
好:
(^ |\W);(processtest)(\W$)?
如果您将
(^ |\W)
设置为可选,则您将匹配如下内容:
“processtestprocesstest”
。使用单词边界是一个更好的解决方案,因为它们是零宽度断言。测试并批准Casimir et Hippolyte,答案更新,thanx用于增加我的正则表达式知识;)请小心使用
(^ |\s)(processtest)(\s |$)
,因为它无法匹配两个连续的关键字(因为空格重叠):
“processtest processtest”
。使用单词边界(如果可能的话)更简单:
\bprocesstest\b
或者如果关键字有非单词字符,并且分隔符是一个空格,可以使用前视:
(^ |\s)processtest(?!\s)
你说得对,这个方法也有效,
\W
\s
好:
(^ |\W);(processtest)(\W$)?
如果您将
(^ |\W)
设置为可选,则您将匹配如下内容:
“processtestprocesstest”
。使用单词边界是一个更好的解决方案,因为它们是零宽度断言。测试并批准Casimir et Hippolyte,答案更新,thanx用于增加我的正则表达式知识;)