如何将多行字符串转换为行列表?
How to convert a multiline string into a list of lines?
在 sikuli 中,我从剪贴板中得到了这样的多行字符串...
Names = App.getClipboard();
名字=
#corazona
#Pebleo00
#cofriasd
«paflio
如果第一个字符不在 x00-x7f 十六进制范围内或者不是单词或数字,我已经使用此正则表达式删除了第一个字符
import re
Names = re.sub(r"(?m)^([^\x00-\x7F]+|\W|\d)", "", Names)
所以现在名字 =
corazona
Pebleo00
cofriasd
paflio
但是,我在使用将 "Names" 转换为序列项的第二个正则表达式时遇到了问题。我想将 "Names" 转换成...
'corazona', 'Pebleo00', 'cofriasd', 'paflio'
或
'corazona', 'Pebleo00', 'cofriasd', 'paflio',
所以 sikuli 可以将它识别为一个列表(我发现 Sikuli 能够识别它,即使是最后的 "comma" 和 "space")通过使用...
NamesAsList = eval(Names)
我如何在 python 中执行此操作?是否有必要使用正则表达式,或者在 python?
中还有其他方法可以做到这一点
我已经这样做了,但是使用 .Net 正则表达式,我只是不知道如何在 python 中做到这一点,我用谷歌搜索没有结果。
这就是我使用 .Net regex
的方式
Text to find:
(.*[^$])(\r\n|\z)
Replace with:
'',%" "%
感谢高级。
如果 Names
是 "convert" 之前的 string
,其中每个名称由换行符 ('\n') 分隔,那么这将起作用:
NamesAsList = '\n'.split(Names)
有关其他选项,请参阅 this question。
你可以使用 splitlines()
import re
clipBoard = App.getClipboard();
Names = re.sub(r"(?m)^([^\x00-\x7F]+|\W|\d)", "", clipBoard)
# Replace the end of a line with a comma.
singleNames = ', '.join(Names.splitlines())
print(singleNames)
一对一衬垫。您的问题并不完全清楚 - 但我假设 - 您想要拆分由 'newline' 分隔的给定字符串,然后通过删除第一个字符(如果不是字母数字)来生成字符串列表。这是我的处理方式
import re
r = re.compile(r'^[a-zA-Z0-9]') # match @ beginning anything that's not alpha numeric
s = '#abc\ndef\nghi'
l = [r.sub('', x) for x in s.split()]
# join this list with comma (if that's required else you got the list already)
','.join(l)
希望这就是你想要的。
在 sikuli 中,我从剪贴板中得到了这样的多行字符串...
Names = App.getClipboard();
名字=
#corazona
#Pebleo00
#cofriasd
«paflio
如果第一个字符不在 x00-x7f 十六进制范围内或者不是单词或数字,我已经使用此正则表达式删除了第一个字符
import re
Names = re.sub(r"(?m)^([^\x00-\x7F]+|\W|\d)", "", Names)
所以现在名字 =
corazona
Pebleo00
cofriasd
paflio
但是,我在使用将 "Names" 转换为序列项的第二个正则表达式时遇到了问题。我想将 "Names" 转换成...
'corazona', 'Pebleo00', 'cofriasd', 'paflio'
或
'corazona', 'Pebleo00', 'cofriasd', 'paflio',
所以 sikuli 可以将它识别为一个列表(我发现 Sikuli 能够识别它,即使是最后的 "comma" 和 "space")通过使用...
NamesAsList = eval(Names)
我如何在 python 中执行此操作?是否有必要使用正则表达式,或者在 python?
中还有其他方法可以做到这一点我已经这样做了,但是使用 .Net 正则表达式,我只是不知道如何在 python 中做到这一点,我用谷歌搜索没有结果。 这就是我使用 .Net regex
的方式Text to find:
(.*[^$])(\r\n|\z)
Replace with:
'',%" "%
感谢高级。
如果 Names
是 "convert" 之前的 string
,其中每个名称由换行符 ('\n') 分隔,那么这将起作用:
NamesAsList = '\n'.split(Names)
有关其他选项,请参阅 this question。
你可以使用 splitlines()
import re
clipBoard = App.getClipboard();
Names = re.sub(r"(?m)^([^\x00-\x7F]+|\W|\d)", "", clipBoard)
# Replace the end of a line with a comma.
singleNames = ', '.join(Names.splitlines())
print(singleNames)
一对一衬垫。您的问题并不完全清楚 - 但我假设 - 您想要拆分由 'newline' 分隔的给定字符串,然后通过删除第一个字符(如果不是字母数字)来生成字符串列表。这是我的处理方式
import re
r = re.compile(r'^[a-zA-Z0-9]') # match @ beginning anything that's not alpha numeric
s = '#abc\ndef\nghi'
l = [r.sub('', x) for x in s.split()]
# join this list with comma (if that's required else you got the list already)
','.join(l)
希望这就是你想要的。