簡體   English   中英

為什么這個正則表達式不匹配帶有百分比符號的字符串?

[英]Why isn't this regex matching a string with percentage symbol?

我有一個具有以下輸入的文件:

xa%1bc
ba%1bc
.
.

等等。 我想使用matchregex來識別其中包含a%1b的行。 我在用

 import re
 p1 = re.compile(r'\ba%1b\b', flags=re.I)
 if re.match(p1,linefromfile):
    continue

它似乎沒有檢測到 %1 的行。 問題是什么? 謝謝

match只搜索字符串開頭的模式,如果你想找出一個字符串是否包含模式,請使用search代替。 此外,您不需要單詞邊界, \\b

re.search(模式,字符串,標志= 0)

掃描字符串查找正則表達式模式產生匹配的第一個位置,並返回相應的匹配對象。 如果字符串中沒有位置與模式匹配,則返回 None; 請注意,這與在字符串中的某個點找到零長度匹配不同。

重新匹配(模式,字符串,標志= 0)

如果 string 開頭的零個或多個字符與正則表達式模式匹配,則返回相應的匹配對象。 如果字符串與模式不匹配,則返回 None; 請注意,這與零長度匹配不同。

import re
if re.search(r"a%1b", "xa%1bc"):
    print("hello")
# hello

你可以試試

if 'a%1b' in linefromfile:

或者

如果你需要正則表達式

if re.match('a%1b', linefromfile):

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM