根据找到的字符进行条件替换
Conditional replace depending on which character is found
这不是 的重复,因为我在这里问的是一些非常具体的问题,我无法按照该问题中的信息实施。所以请允许这个问题。
我想用相应范围的字符替换某个范围的字符。到目前为止,我只能通过多次操作来完成。
例如,匹配 [ABEZHIKMNOPTYXZ]
范围内以大写拉丁字符开头且后跟希腊小写字母 [α-ωά-ώ]
的任何单词,并将第一个匹配组中的字符替换为相似的字符,但在希腊范围内 [ΑΒΕΖΗΙΚΜΝΟΡΤΥΧΖ]
(注意,它们看起来相同,但字符不同)。
到目前为止我想到的是多个替换,即。
(A)([α-ωά-ώ])
Α
(B)([α-ωά-ώ])
Β
....
例如:
Aνθρώπινος 将变为 Ανθρώπινος
Bìτος 会变成 Βìτος
最好这应该在 EmEditor 中工作,Notepad++ 是第二个选项。
Notepad++支持条件替换,你可以这样使用:
- 查找内容:
(?:(A)|(B)|(E)|(Z)|(H)|(I)|(K)|(M)|(N)|(O)|(P)|(T)|(Y)|(X)|(Z))(?=[α-ωά-ώ])
- 替换为:
(?{1}Α:(?{2}Β:(?{3}Ε:(?{4}Ζ:))))
类似地添加其他希腊字母
替换:
(?: # start non capture group
(?{1} # if group 1 exists "A"
Α # replace with greek letter
: # else
(?{2} # if group 2 exists "B"
Β # replace with greek letter
: # else
(?{3} # and so on ...
Ε
:
(?{4}
Ζ
:
)
)
)
)
) # end non capture group
(?= # positive lookahead, make sure we have after:
[α-ωά-ώ] # a small greek letter
) # end lookahead
我做了一个测试,但只针对 2 个字母 "A" 和 "B" 并用更直观的不同字母 "X" 和 "Y" 替换它们只是为了展示它的工作方式。
屏幕截图(之前):
屏幕截图(之后):
这不是
我想用相应范围的字符替换某个范围的字符。到目前为止,我只能通过多次操作来完成。
例如,匹配 [ABEZHIKMNOPTYXZ]
范围内以大写拉丁字符开头且后跟希腊小写字母 [α-ωά-ώ]
的任何单词,并将第一个匹配组中的字符替换为相似的字符,但在希腊范围内 [ΑΒΕΖΗΙΚΜΝΟΡΤΥΧΖ]
(注意,它们看起来相同,但字符不同)。
到目前为止我想到的是多个替换,即。
(A)([α-ωά-ώ])
Α
(B)([α-ωά-ώ])
Β
....
例如: Aνθρώπινος 将变为 Ανθρώπινος
Bìτος 会变成 Βìτος
最好这应该在 EmEditor 中工作,Notepad++ 是第二个选项。
Notepad++支持条件替换,你可以这样使用:
- 查找内容:
(?:(A)|(B)|(E)|(Z)|(H)|(I)|(K)|(M)|(N)|(O)|(P)|(T)|(Y)|(X)|(Z))(?=[α-ωά-ώ])
- 替换为:
(?{1}Α:(?{2}Β:(?{3}Ε:(?{4}Ζ:))))
类似地添加其他希腊字母
替换:
(?: # start non capture group
(?{1} # if group 1 exists "A"
Α # replace with greek letter
: # else
(?{2} # if group 2 exists "B"
Β # replace with greek letter
: # else
(?{3} # and so on ...
Ε
:
(?{4}
Ζ
:
)
)
)
)
) # end non capture group
(?= # positive lookahead, make sure we have after:
[α-ωά-ώ] # a small greek letter
) # end lookahead
我做了一个测试,但只针对 2 个字母 "A" 和 "B" 并用更直观的不同字母 "X" 和 "Y" 替换它们只是为了展示它的工作方式。
屏幕截图(之前):
屏幕截图(之后):