【发布时间】:2017-12-13 18:38:32
【问题描述】:
在这里完成正则表达式新手,如果这是一个愚蠢的问题,请原谅我。我在表单的 CSV 文件中有一行:
test_id|column1|column10|column11|column101|
并且我需要能够匹配 Python 中以下一项的第一次出现并获取其在字符串中的位置:
column1|, |column1| or |column1
我尝试在https://regexr.com/ 上使用[\|]?column1[\|]? 来查看它的运行情况,但它与其中包含column1 的所有内容相匹配。我该怎么办?
编辑:我完全同意 cmets 的观点,即这里不需要使用 Python 的 Regex。但是,如果我只想使用正则表达式匹配模式,我该怎么做呢?
【问题讨论】:
-
你不能使用“column1 后跟一个非字母字符”吗?
-
你可以试试
line.split('|').index('column1')。这将为您提供“column1”在您的列列表中的位置,或者如果找不到任何内容,请提高ValueError。 -
你为什么要为此使用正则表达式??
-
字符串或管道的开头,然后是
column1,然后是管道或换行符。或者只是使用带有管道分隔的 csv 解析器打开文件,并检查行中是否有任何项目等于您的搜索字符串。 -
import re; p = re.compile(r'column1'); m = p.search(line); m.start(); m.group(0)