我有一个看起来如下的字符串:
['(18 | H)','(27 | V)','(29 | *)']
我想过滤|之间的所有单个字符。和)。我可以使用以下正则表达式过滤掉字符H和V,这对于初学者来说非常容易:([A-Z])
现在我遇到了一个问题,因为正则表达式中使用了星号,所以无法过滤出'*'
。我尝试使用方括号和反冲来解决此问题,但是如您所见,它没有用。
有人知道如何解决此问题吗?谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
“全部过滤”有点令人困惑-不确定要过滤掉还是只保留其中...假设只需要|
之后{{ 1}},您想要这样的东西:
)
这会将\|(.)\)
和|
之间的任何字符放入您的)
。
即使我误解了您的问题,我认为这也会使您朝正确的方向前进-只需使用点(。)来表示单个字符,并转义特殊字符$1
和{{ 1}}。
我假设您知道如何使用|
(或)
,具体取决于您使用的regex的风格-我已经有一段时间没有使用Python了,记住确切的语法)
答案 2 :(得分:-1)
这是一种方法。
例如:
import re
data = ['(18|H)', '(27|V)', '(29|*)']
print([re.search(r"\|(.*)\)", i).group(1) for i in data])
输出:
['H', 'V', '*']