Javascript strip Latex形式的英文字母变种

时间:2015-05-09 16:35:06

标签: javascript regex string

如何使用{\'<1 alpha>}模式将Latex字符替换为相应的英文字母?

例如

  

L {多\'O}佩斯

应该改为

  

洛佩兹

它不应该影响{\'<1 alpha>}模式中的任何其他字符。它应该是贪婪的,因为可能需要修剪几个字符。

3 个答案:

答案 0 :(得分:1)

$1就是这样做的:

var new_string = 'L{\\\'o}pez'.replace(/\{\\['"]([A-Z])\}/gi, '$1');

额外的\是我们可以逃避\'

解释

\{           Selects a {
    \\       Selects a \
    (?:      Starts a group that is not "stored"
        \'       Selects a quote
        |        OR
        \"       Selects a double quote
    )        Ends the group

    ([A-Z])  Takes one alphabetical character and stores it in a  group
\}           Selects a } to end the selection

g多次选择

i :案例不敏感。 [A-Z]变为:[A-Za-z]

答案 1 :(得分:0)

{\\'([a-zA-Z])}

试试这个。$1。见。演示。

https://regex101.com/r/oF9hR9/3

var re = /{\\'([a-zA-Z])}/g;  
var str = 'L{\'o}pez';
var subst = '$1'; 

var result = str.replace(re, subst);

答案 2 :(得分:0)

您可以使用以下正则表达式:

var str = "L{\'o}pez";
var res = str.replace(/{\\'([a-zA-Z])}/g, /$1/);

\S将匹配字母字符,前面的replace函数会将匹配正则表达式/{\'([a-zA-Z])}/g替换为您的角色$1的第一个组([a-zA-Z])