假设我有一个包含大量随机内容的字符串,如下所示:
strJunk ="asdf2adsf29Value=five&lakl23ljk43asdldl"
Run Code Online (Sandbox Code Playgroud)
而且我有兴趣获得位于'Value ='和'&'之间的子串,在这个例子中它将是'5'.
我可以使用如下的正则表达式:
match = re.search(r'Value=?([^&>]+)', strJunk)
>>> print match.group(0)
Value=five
>>> print match.group(1)
five
Run Code Online (Sandbox Code Playgroud)
为什么match.group(0)是整个'Value = five'而group(1)只是'five'?我有办法让'五'成为唯一的结果吗?(这个问题源于我对正则表达式的一种微弱的把握)
我也将不得不在这个字符串中进行替换,如下所示:
val1 = match.group(1)
strJunk.replace(val1, "six", 1)
Run Code Online (Sandbox Code Playgroud)
产量:
'asdf2adsf29Value=six&lakl23ljk43asdldl'
Run Code Online (Sandbox Code Playgroud)
考虑到我计划一遍又一遍地执行上述两个任务(在'Value ='和'&'之间找到字符串,以及替换该值),我想知道是否还有其他更有效的方法来寻找substring并在原始字符串中替换它.我很好地坚持我所拥有的,但我只是想确保如果有更好的方法,我不会花费更多的时间.
我有一个以下格式的文本文件:
DELIMITER1
extract me
extract me
extract me
DELIMITER2
Run Code Online (Sandbox Code Playgroud)
我想extract me在.txt文件中提取DELIMITER1和DELIMITER2之间的每个块
这是我目前的不良代码:
import re
def GetTheSentences(file):
fileContents = open(file)
start_rx = re.compile('DELIMITER')
end_rx = re.compile('DELIMITER2')
line_iterator = iter(fileContents)
start = False
for line in line_iterator:
if re.findall(start_rx, line):
start = True
break
while start:
next_line = next(line_iterator)
if re.findall(end_rx, next_line):
break
print next_line
continue
line_iterator.next()
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
给定一个字符串,我需要在不在两个给定单词之间的区域中用另一个子串替换子串.
例如:
substring: "ate" replace to "drank", 1st word - "wolf", 2nd word - "chicken"
input: The wolf ate the chicken and ate the rooster
output: The wolf ate the chicken and drank the rooster
Run Code Online (Sandbox Code Playgroud)
目前,我唯一的解决方案是非常不洁净:
1)通过替换位于其间的字符串,将位于两个单词之间的字符串替换为临时子字符串
2)替换我原来想要的字符串
3)将临时字符串还原为原始字符串
编辑:
我特别提出了一个与我的案例略有不同的问题,以保持答案与未来的读者相关.
我特别需要根据":"拆分一个字符串,当我需要忽略"<"和">"括号之间可以链接的":"时,唯一的承诺是开口括号的数量等于关闭括号的数量.
例如,在以下情况中:
input a : <<a : b> c> : <a < a < b : b> : b> : b> : a
output [a, <<a : b> c>, <a < a < b …Run Code Online (Sandbox Code Playgroud) 我想把一个字符串str = "hello, my name is \"michael\", what's your's?"变成"hello, my name is <span class="name">michael</span>
我怎么能用javascript做到这一点?我知道如何进行str替换,但是如何获取我选择/替换它的内容.
谢谢!!!
我正在尝试找到一种方法来替换csv文件中使用python在两个双引号之间发生的所有逗号.
鉴于此类输入:
abc,def,"ghi,jkl,mno",pqr,stu
我想得到:
abc,def,"ghi|jkl|mno",pqr,stu
我尝试使用类似于以下内容的正面外观:
(?<=\")(this here should match every comma)(?=\")但我无法让它发挥作用.有任何想法吗?
我正在尝试替换两个已知字符(§)之间的所有逗号
我的测试字符串: '§Rd, Vasai - East, Thane§'
预期输出: '§Rd; Vasai - East; Thane§'
我设法使用以下方法删除了一个事件:
re.sub(r'(§[^§\r\n]*),([^§\r\n]*§)', r"\1;\2", '§Rd, Vasai - East, Thane§')
Run Code Online (Sandbox Code Playgroud)
但这返回: §Rd, Vasai - East; Thane§