如何对任何行的第二个单词进行分组并分别替换它们
How to group second word of any line and replace them separately
如何将以 ("w" "b) 开头的每一行的第一个单词替换为 ("white" "black")
第二个词都是“K”“Q”“B”到“king”“Queen”“Bishop”
例如下面是我的文字
一周
wQ
wB
wR
wN
wP
黑
bQ
bB
bR
bN
bP
输出应该是
白王
白皇后
白主教
白鸦
白骑士
白兵
&
黑王
黑皇后
黑主教
黑鸦
黑骑士
黑兵
直到结束。
我相信这是可能的,
任何帮助将不胜感激。
- 您可以在 https://regex101.com
中使用 ([wb])([KQBRNP])
正则表达式
- 单击
TOOLS
子面板 Code Generator
以使用您的语言生成代码。
- 另请参阅
replace
或类似函数,它可以帮助您通过正则表达式修改字符串。
如果你能用你的语言做这样的事情,也许你不需要常客:
const convert = (word) => {
const a = {"W": "White", "B": "Black"}[word[0].toUpperCase()]
const b = {"K": "King", "Q": "Queen",
"B": "Bishop","R": "Rook",
"N": "Knight","P": "Pawn"}[word[1].toUpperCase()]
return a + " " + b
}
console.log(convert("wk"))
console.log(convert("wQ"))
console.log(convert("wB"))
console.log(convert("wR"))
console.log(convert("wN"))
console.log(convert("wP"))
console.log(convert("bk"))
console.log(convert("bQ"))
console.log(convert("bB"))
console.log(convert("bR"))
console.log(convert("bN"))
console.log(convert("bP"))
如果你想转换一个文件并且你已经安装了 python
:
写入文件conv.py
:
重新导入;
代币 = re.compile(r'^[wb][kQBRNP]$')
def 转换(行):
if (not tokens.match(line)): return line + '\n';
a = {"W": "White", "B": "Black"}[line[0].upper()]
b = {“K”:“国王”,“Q”:“女王”,
“B”:“主教”,“R”:“车”,
"N": "骑士","P": "兵"}[line1.upper()]
return f'{a} {b}'
以 open('result.txt', 'w') 作为作者:
打开('test.txt')作为 reader:
行 = reader.readline()
行 = []
同时(行):
writer.write(转换(行))
行 = reader.readline()
将您的文件副本创建为 test.txt
运行: python conv.py
你会得到result.txt
这可以用 Notepad++ 完成,使用条件替换:
- Ctrl+H
- 查找内容:
(?:(w)|(b))(?:(k)|(q)|(b)|(r)|(n)|(p))
- 替换为:
(?1White:Black) (?3King:(?4Queen:(?5Bishop:(?6Rook:(?7Knight:Pawn)))))
- UNCHECK 匹配大小写
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
(?: # non capture group
(w) # group 1, letter w
| # OR
(b) # group 2, letter b
) # end group
(?: # non capture group
(k) # group 3, letter k
| # OR
(q) # group 3, letter q
| # OR
(b) # group 3, letter b
| # OR
(r) # group 3, letter r
| # OR
(n) # group 3, letter n
| # OR
(p) # group 3, letter p
) # end group
替换:
(?1 # if group 1 exists (i.e. letter w),
White # put the word White
: # else
Black # Black
)
(?3 # if group 3 exists (letter k)
King # then King
: # else
(?4 # if group 4 exists (letter q)
Queen # then Queen
: # else
(?5 # if group 5 exists
Bishop ### and so on...
:
(?6
Rook
:
(?7
Knight
:
Pawn
)
)
)
)
)
截图(之前):
截图(后):
如何将以 ("w" "b) 开头的每一行的第一个单词替换为 ("white" "black") 第二个词都是“K”“Q”“B”到“king”“Queen”“Bishop”
例如下面是我的文字
一周
wQ
wB
wR
wN
wP
黑
bQ
bB
bR
bN
bP
输出应该是
白王
白皇后
白主教
白鸦
白骑士
白兵
&
黑王
黑皇后
黑主教
黑鸦
黑骑士
黑兵
直到结束。
我相信这是可能的,
任何帮助将不胜感激。
- 您可以在 https://regex101.com 中使用
- 单击
TOOLS
子面板Code Generator
以使用您的语言生成代码。 - 另请参阅
replace
或类似函数,它可以帮助您通过正则表达式修改字符串。
([wb])([KQBRNP])
正则表达式
如果你能用你的语言做这样的事情,也许你不需要常客:
const convert = (word) => {
const a = {"W": "White", "B": "Black"}[word[0].toUpperCase()]
const b = {"K": "King", "Q": "Queen",
"B": "Bishop","R": "Rook",
"N": "Knight","P": "Pawn"}[word[1].toUpperCase()]
return a + " " + b
}
console.log(convert("wk"))
console.log(convert("wQ"))
console.log(convert("wB"))
console.log(convert("wR"))
console.log(convert("wN"))
console.log(convert("wP"))
console.log(convert("bk"))
console.log(convert("bQ"))
console.log(convert("bB"))
console.log(convert("bR"))
console.log(convert("bN"))
console.log(convert("bP"))
如果你想转换一个文件并且你已经安装了 python
:
写入文件
conv.py
:重新导入; 代币 = re.compile(r'^[wb][kQBRNP]$') def 转换(行): if (not tokens.match(line)): return line + '\n'; a = {"W": "White", "B": "Black"}[line[0].upper()] b = {“K”:“国王”,“Q”:“女王”, “B”:“主教”,“R”:“车”, "N": "骑士","P": "兵"}[line1.upper()] return f'{a} {b}' 以 open('result.txt', 'w') 作为作者: 打开('test.txt')作为 reader: 行 = reader.readline() 行 = [] 同时(行): writer.write(转换(行)) 行 = reader.readline()
将您的文件副本创建为
test.txt
运行:
python conv.py
你会得到
result.txt
这可以用 Notepad++ 完成,使用条件替换:
- Ctrl+H
- 查找内容:
(?:(w)|(b))(?:(k)|(q)|(b)|(r)|(n)|(p))
- 替换为:
(?1White:Black) (?3King:(?4Queen:(?5Bishop:(?6Rook:(?7Knight:Pawn)))))
- UNCHECK 匹配大小写
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
(?: # non capture group
(w) # group 1, letter w
| # OR
(b) # group 2, letter b
) # end group
(?: # non capture group
(k) # group 3, letter k
| # OR
(q) # group 3, letter q
| # OR
(b) # group 3, letter b
| # OR
(r) # group 3, letter r
| # OR
(n) # group 3, letter n
| # OR
(p) # group 3, letter p
) # end group
替换:
(?1 # if group 1 exists (i.e. letter w),
White # put the word White
: # else
Black # Black
)
(?3 # if group 3 exists (letter k)
King # then King
: # else
(?4 # if group 4 exists (letter q)
Queen # then Queen
: # else
(?5 # if group 5 exists
Bishop ### and so on...
:
(?6
Rook
:
(?7
Knight
:
Pawn
)
)
)
)
)
截图(之前):
截图(后):