社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

无法使用regex和python查找特定字符串(中间有通配符)[duplicate]

stygarfield • 4 年前 • 839 次点击  

示例文本:

\nInternet空间=\n188交叉克里卡3\n1010hgh shicle\n“

我试图从示例文本中分别提取H[(通配符)和A[(通配符)。

如果我用 x = re.search('H\[.*\]', ocr[0]) 它找到整根绳子 H[ 12 ]\nA[ O ]

如果我用 'A\[.*\]' 它会自己找到A[O]——但我似乎不能只找到H[12]。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52865
 
839 次点击  
文章 [ 3 ]  |  最新文章 4 年前
Pan Christensen
Reply   •   1 楼
Pan Christensen    4 年前

试试这个:

H\[ (\w+) \](?:.|\n)+A\[ (\w+) \]

如果您知道H和A参数将始终由换行符分隔,而没有其他内容,请替换 (?:.|\n)+ 只有 \n .

我不确定H和A变量的内容是什么,但是 \w 应该能抓住大部分。

iiKop47
Reply   •   2 楼
iiKop47    4 年前

这与Python正则表达式库中贪婪的限定符有关: https://docs.python.org/3/library/re.html . 按ctrl-F键查找: 贪婪的 .

贪婪的限定词 * 希望匹配尽可能多的字符。为了让它不贪婪 ? 应该引入限定符。因此,修正的regex可以是: H\[.*?\]

要使此搜索适用于任何大写字母字符,请尝试: [A-Z]\[.*?\]

希望这有帮助!

Tim Biegeleisen
Reply   •   3 楼
Tim Biegeleisen    4 年前

使用非贪婪模式:

\b[AH]\[.*?\]

Python脚本:

inp = "UNCKEV\nPumpkins 10/1/20-2030\nRunners\nha\nH[ 12 ]\nA[ O ]\nKNOWLEDGI\nPLA\nDISTRIBUTION\nHOME TEAM\nPINK VISITING TEAM\nBLANCHE BUREAU NATIONAL\nJAUNE \u00c9C\nALE\nPR\u00c9CISER LES DE\nSEULEMENT\nOFF\nSORTIE\nSTART\nD\u00c9BUT\nON\nRETOUR\nPER\nP\u00c9R.\nMIN\nSERV\nPURG\nOFFENCE\nINFRACTION\nDUR\u00c9E\nNo.\nDU\nNeinterferCACE =\n188 Cross clicak 3\n1010hgh shicle\n"
matches = re.findall(r'\b[AH]\[.*?\]', inp)
print(matches)

这张照片:

['H[ 12 ]', 'A[ O ]']