如何使用{\'<1 alpha>}
模式将Latex字符替换为相应的英文字母?
例如
L {多\'O}佩斯
应该改为
洛佩兹
它不应该影响{\'<1 alpha>}
模式中的任何其他字符。它应该是贪婪的,因为可能需要修剪几个字符。
答案 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])
。