我想使用来自用户的输入作为搜索某些文本的正则表达式模式.它有效,但我如何处理用户放置在正则表达式中有意义的字符的情况?例如,用户想要搜索Word (s):正则表达式引擎将(s)作为一个组.我希望它像一个字符串一样对待它"(s)".我可以运行replace用户输入并替换(with \(和)with \)但问题是我需要替换每个可能的正则表达式符号.你知道更好的方法吗?
这段代码几乎可以满足我的需要..
for line in all_lines:
s = line.split('>')
Run Code Online (Sandbox Code Playgroud)
除了它删除所有'>'分隔符.
所以,
<html><head>
Run Code Online (Sandbox Code Playgroud)
变成
['<html','<head']
Run Code Online (Sandbox Code Playgroud)
有没有办法使用split()方法但保留分隔符,而不是删除它?
有了这些结果..
['<html>','<head>']
Run Code Online (Sandbox Code Playgroud) 我re在Python 3.6.5中遇到了模块问题.我的正则表达式中有这种模式:
'\\nRevision: (\d+)\\n'
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我得到了一个DeprecationWarning.
我想拆分一个带有多个分隔符的字符串,但是在结果列表中保留分隔符.我认为这是一个有用的事情来做一个解析任何类型的公式的初始步骤,我怀疑有一个很好的Python解决方案.
有人问类似的问题在Java中这里.
例如,典型的拆分看起来像这样:
>>> s='(twoplusthree)plusfour'
>>> s.split(f, 'plus')
['(two', 'three)', 'four']
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种很好的方法来添加加回(或保留它):
['(two', 'plus', 'three)', 'plus', 'four']
Run Code Online (Sandbox Code Playgroud)
最后,我想为每个操作员和支架做这个,所以如果有办法可以获得
['(', 'two', 'plus', 'three', ')', 'plus', 'four']
Run Code Online (Sandbox Code Playgroud)
一气呵成,然后更好.
我们假设我有这个字符串:
s = "123(45)678"
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到这个清单?
l = ['123','(','45',')','678']
Run Code Online (Sandbox Code Playgroud) 我有一段代码,用逗号和点分隔字符串(但不是当数字在逗号或点之前或之后):
text = "This is, a sample text. Some more text. $1,200 test."
print re.split('(?<!\d)[,.]|[,.](?!\d)', text)
Run Code Online (Sandbox Code Playgroud)
结果是:
['This is', ' a sample text', ' Some more text', ' $1,200 test', '']
Run Code Online (Sandbox Code Playgroud)
我不想丢失逗号和圆点.所以我要找的是:
['This is,', 'a sample text.', 'Some more text.', '$1,200 test.']
Run Code Online (Sandbox Code Playgroud)
此外,如果text它的末尾有一个点在列表的末尾产生一个空字符串.此外,在分割弦的开头有白色空格.有没有更好的方法没有使用re?你会怎么做?
我目前在 txt 文件中有一个文件名列表,我正在尝试对它们进行排序。我想做的第一个是将它们分成一个列表,因为它们都在一行中。列表中有 3 种文件类型。我可以拆分列表,但我想在最终结果中保留分隔符,但我无法找到一种方法来做到这一点。我分割文件的方式如下:
import re
def breakLines():
unsorted_list = []
file_obj = open("index.txt", "rt")
file_str = file_obj.read()
unsorted_list.append(re.split('.txt|.mpd|.mp4', file_str))
print(unsorted_list)
breakLines()
Run Code Online (Sandbox Code Playgroud)
我发现 DeepSpace 的答案在这里非常有用Split a string with "(" and ")" and keep the delimiters (Python),但这似乎只适用于单个字符。
编辑:
输入示例:
文件名1234.mp4文件名1235.mp4文件名1236.mp4文件名1237.mp4
预期输出:
文件名1234.mp4
文件名1235.mp4
文件名1236.mp4
文件名1237.mp4
是否存在一个命令,以便以空格成为字符串的方式拆分字符串?例如,假设命令是"coolsplit":
>>> example='hey, whats up, how are you?'
>>> example.coolsplit()
['hey,',' ','whats',' ','up,',' ','how',' ','are',' ','you?']
Run Code Online (Sandbox Code Playgroud)
它存在吗?
在python中我可以轻松地逐行读取文件到一个集合中,只需使用:
file = open("filename.txt", 'r')
content = set(file)
Run Code Online (Sandbox Code Playgroud)
集合中的每个元素都包含实际行和尾随换行符.
现在我有一个包含多行的字符串,我想通过正常的set操作与内容进行比较.
是否有任何方法可以将字符串转换为set相同的方式,例如,它还包含换行符?
编辑:
问题"在Python中,如何拆分字符串并保留分隔符?" 处理类似的问题,但答案并不容易采用其他用例.
import re
content = re.split("(\n)", string)
Run Code Online (Sandbox Code Playgroud)
没有预期的效果.
我有这样的清单
['a', 'pnp', 'a|pnp', 'lab2|pnp']
Run Code Online (Sandbox Code Playgroud)
我想分开它们并拥有它
['a', 'pnp', 'a', '|', 'pnp', 'lab2', '|', 'pnp']
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
好的,我会解释我有什么需要做什么.
我有一个带有多个键的dict,但是我会为这个例子给出一个和一个由A,T,C和G组成的字符串.([3:]表示它应该在值的3个索引上分开)
Dict = {'EcoRV': 'GATATC'[3:]}
String = 'AAAAGATATCAAAGATATCAAAA'
Run Code Online (Sandbox Code Playgroud)
现在这是我需要做的.我必须在字符串中查找值并将字符串拆分为dict键的值,最后得到一个包含拆分部分的列表,因此在这种情况下,它必须拆分为'TC'并取得首先是C并将其拆分并最终得到:
List = ['AAAAGATA','TCAAAGATA','TCAAAA']
Run Code Online (Sandbox Code Playgroud)
我尝试了它split但它失去了'TC',我需要保留它们.
我正在尝试拆分包含 python 函数的字符串,以便生成的输出将单独的函数保留为列表元素。
s='hello()there()'应该拆分为['hello()', 'there()']
为此,我使用正则表达式先行在右括号上拆分,但不在字符串末尾拆分。
虽然前瞻似乎有效,但我无法)按照各种帖子中的建议将结果保留在结果字符串中。简单地用正则表达式分割会丢弃分隔符:
import re
s='hello()there()'
t=re.split("\)(?!$)", s)
Run Code Online (Sandbox Code Playgroud)
这导致:'hello(', 'there()']。
s='hello()there()'
t=re.split("(\))(?!$)", s)
Run Code Online (Sandbox Code Playgroud)
将分隔符包装为一个组会导致)保留为一个单独的元素:与使用该函数的方法['hello(', ')', 'there()']
一样:filter()
s='hello()there()'
u = list(filter(None, re.split("(\))(?!$)", s)))
Run Code Online (Sandbox Code Playgroud)
再次导致括号作为单独的元素:['hello(', ')', 'there()']
如何拆分这样的字符串以使函数在输出中保持完整?