我正在使用VBA正则表达式,我只需要提取两个#分隔符之间的数据(我只需要删除前后带有空格的文本,而不是#分隔符)。
到目前为止,我有这种模式:
^#\s*(.*)\s*#$
输入的数据有几个规则:
1. Always start with #
2. After the first # there may be zero or one spaces
3. After captured text there may be zero or one spaces before end of line
4. After captured text there may be zero or one # before end of line
例如:
# this is a test
#this is a test
# this is a test#
# this is a test #
在所有四种情况下,this is a test
应该是唯一返回的东西。
我不认为该图案在百万英里之外,但是当我在结尾添加#符号并加上/不包含空格时,似乎很难。...
感谢您的协助。
答案 0 :(得分:0)
您可以使用来修复当前的解决方案
^#\s*(.*?)\s*#?$
请参见regex demo。有两个要点:1)(.*?)
必须是一个懒点模式,2)#?
现在有一个?
量词可以匹配#
1或0次。
不过,您也可以使用Replace
和
^#\s*|\s*#?$
模式。不要忘记设置正则表达式.Global = True
。