-3
A
回答
2
你可以使用Python的groupby
功能這個如下:
from itertools import groupby
text = """x a
x b
x c
a b
x d
a b
x 123
x 234
x 345
a b
x a
x b"""
for k, g in groupby(text.split('\n'), lambda x: x.startswith('x')):
lines = list(g)
if k and len(lines) >= 2:
lines = ['y' + line[1:] for line in lines]
print '\n'.join(lines)
這將顯示以下內容:
y a
y b
y c
a b
x d
a b
y 123
y 234
y 345
a b
y a
y b
使用Python 2.7.9
0
使用re.findall
和re.sub
測試:
def replace(text):
regex = re.compile(r'(?m)^x')
if len(regex.findall(text)) > 1:
return regex.sub('y', text)
return text
text = '''foobar
x a
c
xa b
e
xx c
a b
x d
a b
x 123
e
x 234
x 345
ax b
x a
x b
x a
e
'''
print replace(text)
輸出:
foobar
y a
c
ya b
e
yx c
a b
y d
a b
y 123
e
y 234
y 345
ax b
y a
y b
y a
e
和
>>> print replace('x')
x
>>> print replace('xa')
xa
>>> print replace('xaxcxc')
xaxcxc
>>> print replace('xa\nxcxc')
ya
ycxc
>>> print replace('axa\nxc\nxc')
axa
yc
yc
>>> print replace('xa\nxc\nxc')
ya
yc
yc
相關問題
- 1. 正則表達式不匹配所有的情況下
- 2. 正則表達式匹配的表達只有這些情況
- 3. 正則表達式只有在找不到完全匹配的情況下才能匹配複數
- 4. 如何替換所有匹配的正則表達式的PHP
- 5. 正則表達式替換未在所有匹配中執行
- 6. Python正則表達式替換所有匹配
- 7. 使用Python刪除所有行匹配正則表達式
- 8. 只有組匹配的正則表達式替換字符
- 9. 正則表達式只有在包含正則表達式匹配時纔會替換?
- 10. 正則表達式只有在輸入一些測試的情況下才能匹配空格-JS
- 11. 正則表達式來替換美國的所有匹配項
- 12. 正則表達式替換隻有在{}
- 13. 匹配所有的全部行情與正則表達式
- 14. Python正則表達式換行匹配
- 15. 如何用Python正則表達式替換多個匹配/組?
- 16. 在Java中使用正則表達式替換所有功能
- 17. PowerShell正則表達式匹配所有可能的匹配
- 18. 如何匹配python正則表達式中的所有鏈接?
- 19. 如何匹配正則表達式只有當它匹配
- 20. 替換字符串中所有的正則表達式匹配與匹配
- 21. 如何修改這個正則表達式來匹配所有三種情況?
- 22. 使用正則表達式在1次迭代中替換所有匹配
- 23. 正則表達式匹配所有
- 24. 正則表達式不匹配所有
- 25. 正則表達式匹配所有``不\ [\]
- 26. 正則表達式匹配文件中的所有換行符
- 27. 如果整行匹配正則表達式,只能替換模式
- 28. 正則表達式:替換部分正則表達式匹配
- 29. 替換使用具有替換功能的正則表達式
- 30. 正則表達式匹配替換
任何企圖.. –
'X - > y'或'X一 - > Y A,X B - >ÿB'? – mozillazg
只能使用正則表達式嗎? – mozillazg