【发布时间】:2019-05-29 20:59:27
【问题描述】:
我正在处理一个数据集,其中包含下一个审查日期的列。此列漏掉了由问号 (?) 表示的字段
我想捕捉这个?然后使用正则表达式将所有没有审查日期的行与其余数据分开。
问题:明确匹配问号的表达方式是什么? (?)
【问题讨论】:
-
你试过'\?'
我正在处理一个数据集,其中包含下一个审查日期的列。此列漏掉了由问号 (?) 表示的字段
我想捕捉这个?然后使用正则表达式将所有没有审查日期的行与其余数据分开。
问题:明确匹配问号的表达方式是什么? (?)
【问题讨论】:
问号前的反斜杠表示“字面上匹配一个问号”
\?
此外,将问号放入字符类将意味着它是按字面意思匹配的,而不是具有其典型的“前一个的 0 或 1”含义
[?]
因此:
bcd[?]
bcd\?
两者都将匹配如下所示的数据:
abcd?efg
^^^^
如果您想匹配只是一个问号而不是其他的数据,请使用开始 ^ 和结束 $ 标记:
^\?$
请考虑不使用正则表达式可能会更快,只需执行一个简单的“字符串包含”检查问号是否存在,如果这就是您正在做的所有事情,并且不需要复杂的模式匹配和值捕获
【讨论】: