相关疑难解决方法(0)

Python使用正则表达式和replace()查找某些字符之间的子字符串

假设我有一个包含大量随机内容的字符串,如下所示:

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并在原始字符串中替换它.我很好地坚持我所拥有的,但我只是想确保如果有更好的方法,我不会花费更多的时间.

python regex string replace

13
推荐指数
1
解决办法
2万
查看次数

在文本文件Python中重复提取两个分隔符之间的一行

我有一个以下格式的文本文件:

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)

有任何想法吗?

python regex

11
推荐指数
2
解决办法
1万
查看次数

Python Regex - 替换不在两个特定单词之间的字符串

给定一个字符串,我需要在不在两个给定单词之间的区域中用另一个子串替换子串.

例如:

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)

python regex

7
推荐指数
1
解决办法
179
查看次数

替换两个引号之间的字符串

我想把一个字符串str = "hello, my name is \"michael\", what's your's?"变成"hello, my name is <span class="name">michael</span>

我怎么能用javascript做到这一点?我知道如何进行str替换,但是如何获取我选择/替换它的内容.

谢谢!!!

javascript regex jquery

3
推荐指数
1
解决办法
3910
查看次数

python中的正则表达式:在双引号之间替换多次出现的逗号

我正在尝试找到一种方法来替换csv文件中使用python在两个双引号之间发生的所有逗号.

鉴于此类输入:

abc,def,"ghi,jkl,mno",pqr,stu

我想得到:

abc,def,"ghi|jkl|mno",pqr,stu

我尝试使用类似于以下内容的正面外观:

(?<=\")(this here should match every comma)(?=\")但我无法让它发挥作用.有任何想法吗?

python regex

3
推荐指数
1
解决办法
299
查看次数

替换两个特定字符之间所有出现的字符

我正在尝试替换两个已知字符(§)之间的所有逗号

我的测试字符串: '§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§

python regex

2
推荐指数
1
解决办法
77
查看次数

标签 统计

regex ×6

python ×5

javascript ×1

jquery ×1

replace ×1

string ×1