如何在Javascript中用正则表达式替换大小写?
我正试图为翻译软件MemoQ中的某些文本创建一个正则表达式替换模式,但是如何在Javascript中用正则表达式替换大小写?,javascript,regex,replace,Javascript,Regex,Replace,我正试图为翻译软件MemoQ中的某些文本创建一个正则表达式替换模式,但是\L和\L最终被替换的文本写入 我基本上是在尝试替换一些结构,比如“如果你想这样做,按1”到“如果你想这样做,按1” 我为西班牙语文本提供的正则表达式是: (Oprima|Presione|Pulse)\s*(el)*\s*([0-9])\s((.)*?)\. 我使用的替代品是: $4, $1 $3. 例如,对于“Oprima 1 si quiere hacer su pago poréfono”,我得到了“si q
\L
和\L
最终被替换的文本写入
我基本上是在尝试替换一些结构,比如“如果你想这样做,按1”到“如果你想这样做,按1”
我为西班牙语文本提供的正则表达式是:
(Oprima|Presione|Pulse)\s*(el)*\s*([0-9])\s((.)*?)\.
我使用的替代品是:
$4, $1 $3.
例如,对于“Oprima 1 si quiere hacer su pago poréfono”,我得到了“si quiere hacer su pago poréfono,Oprima 1.”,这是可以的,但我需要在“si”中得到一个大写字母,在“Oprima”中得到一个小写字母,这样它的句子格式才合适
我试图在相应的$
之前使用\L
和\L
,但MemoQ会将\L
和\L
与替换的句子一起写入,因此这些转义标记在这里似乎不起作用。我查看了MemoQ关于regex的帮助部分,但他们只简单地提到了替换函数,没有做这种修改
你知道除了用
\l
或\l
替换大写字母和小写字母之外,还有什么其他东西可以替代吗?我想我们会遇到很多边缘情况,但是如果我们想从表达式开始,我们可以尝试:
([A-Z].+[0-9]+)\s*([a-z])(.+)([.;,:])
或:
对于小写/大写,我们可能希望使用JavaScript内置函数,\U$2\L$3\L$1$4
仅用于演示:
在这里,我们最好将句子分开,编写大部分问题的脚本,而不是用正则表达式解决整个问题
例如,我不确定JavaScript中的\U
和\L
,.tolowercase
和函数是否非常合适
我的猜测是,我们将面临许多边缘情况,但如果我们希望从一个表达式开始,我们可以尝试:
([A-Z].+[0-9]+)\s*([a-z])(.+)([.;,:])
或:
对于小写/大写,我们可能希望使用JavaScript内置函数,\U$2\L$3\L$1$4
仅用于演示:
在这里,我们最好将句子分开,编写大部分问题的脚本,而不是用正则表达式解决整个问题
例如,我不确定JavaScript中的\U
和\L
,.tolowercase
和函数是否非常合适
你好谢谢你的帮助!我尝试过这个表达方式,但问题是它也匹配了正常的句子,例如:“Oprima 1 si quiere hacer su pago poréfono.si quiere otra cosa,Oprima 2。”我提到的第一个选项只匹配以“Oprima”开头的句子,而忽略了第二个,这正是我所需要的。我还尝试使用\U$4、\L$1$3,但结果中写了“\U”和“\L”,如“\Usi quiere hacer su pago poréfono,\LOprima 1.”嗨!谢谢你的帮助!我尝试过这个表达方式,但问题是它也匹配了正常的句子,例如:“Oprima 1 si quiere hacer su pago poréfono.si quiere otra cosa,Oprima 2。”我提到的第一个选项只匹配以“Oprima”开头的句子,而忽略了第二个,这正是我所需要的。我还尝试使用\U$4、\L$1$3,但结果中会写入“\U”和“\L”,如“\Usi quiere hacer su pago poréfono、\LOprima 1”