javascript-如何用正则表达式替换大写和小写?

时间:2019-06-13 14:12:35

标签: javascript regex replace memoq

我正在尝试为翻译软件MemoQ中的某些文本创建正则表达式替换模式,但是最终\L\l用替换文本编写了。

我基本上是在尝试替换“如果要执行此操作,请按1”之类的结构。改为“如果要执行此操作,请按1”。

我为西班牙语文本想到的正则表达式是:

(Oprima|Presione|Pulse)\s*(el)*\s*([0-9])\s((.)*?)\.  

我正在使用的替代品是:

$4, $1 $3.

例如,对于“ Oprima 1 si quiere hacer su pago porteléfono”。我收到“ Oprima 1的电话”,这是可以的,但是我需要用“ si”将大写,并将“ Oprima”用小写,因此它的句子格式正确。

我尝试在各自的\L之前使用\l$,但是MemoQ将\L\l连同被替换的句子一起写,所以看起来这些逃脱的令牌在这里不起作用。我检查了MemoQ的正则表达式帮助部分,但它们仅非常简单地提到了替换功能,没有什么可以做这种修改的。

除了\l\L以外,还有什么我可以用来替代大小写字母的想法吗?

1 个答案:

答案 0 :(得分:0)

我的猜测是,我们将面临许多边缘情况,但是如果我们只想从表达式开始,我们可以尝试:

([A-Z].+[0-9]+)\s*([a-z])(.+)([.;,:])

或者:

(.+[0-9]+)\s*(.)(.+)([.;,:])

对于较低/较高的部分,我们可能要使用JavaScript内置函数,\U$2\L$3, \L$1$4仅用于演示:

Demo 1

在这里,最好是拆分句子,为我们的大部分问题编写脚本,而不是使用正则表达式解决整个问题。

例如,我不确定JavaScript中的\U\L.tolowercase.touppercase函数可能非常适合。

Demo 2