[英]Extract text between a string and new line character (/n) using regex
[英]Regex capture data between String and \n character in Python
我正在學習python,我想在'NUMBER:'和\\ n之間捕獲數據
編號:3741733552 \\ n556644
變量中新行字符后的數字,因此無法指望它捕獲。
re.search(r'NUMBER:(.*?)[\n]', string_data).group(1)
我嘗試上面的代碼(這是錯誤的)是徒勞的,請幫助捕獲這個數字。 謝謝。
編輯:
我有一個字符串“NAME:KHAN NASEEM \\ n \\ n22972 LAHSER RD \\ n \\ n ...”,我使用它像代碼
name = re.search(r'NAME:\s*(.+)', string_data)
但我得到的輸出是“KHAN NASEEM \\ n \\ n22972 LAHSER RD \\ n \\ n ......”,但我只想要KHAN NASEEM。
\\ n =字符串文字,而不是實際的新行
你可以試試這個:
import re
s = "NUMBER: 3741733552\n556644"
final_data = re.findall('NUMBER:\s*(.*?)\n', s)
輸出:
['3741733552']
以下是我的問題解決方案。 它簡短,易讀。 你可能會變得更復雜,但我喜歡保持簡單:-)。 我希望這可以幫助你!
>>> import re
>>> num = 'NUMBER: 3741733552\n556644'
>>> search = re.search(r'([0-9].*)', num).group(0)
>>> print(search)
3741733552
如果你想從NAME:
獲得所有字符NAME:
直到反斜杠后跟n
字母,請使用
\bNAME:\s*(.+?)(?:\\n|$)
請參閱正則表達式演示 。
細節
\\b
- 單詞邊界 NAME:
- NAME:
子字符串 \\s*
- 0+空格 (.+?)
- 第1組:除了線性字符之外的一個或多個字符,盡可能少 (?:\\\\n|$)
- 字符串的結尾或后跟n
的反斜杠 以下是Python演示 :
import re
s = r'NAME: KHAN NASEEM\n\n22972 LAHSER RD\n\n...' # Note r'' prefix: all \ are literal backslashes here!
m = re.search(r'\bNAME:\s*(.+?)(?:\\n|$)', s)
if m:
print(m.group(1)) # => KHAN NASEEM
注意 :您應該檢查如何將文本從DB提取到Python。 \\n
實際上應該是換行符。 一旦修復,您將不得不使用
r'\bNAME:\s*(.+)'
整個單詞NAME:
空格,組1將捕獲除換行符之外的一個或多個字符,盡可能多(即該行的其余部分)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.