我无法识别潜在的哈希字符。我使用以下模式来识别表单的文件:id-1321952010.xml。其中一些文件可能在id之前包含#:因此:#id-1321952010.xml也需要被选中。
目前我的初步案例是:
QRegExp rxLogFileFormat("\\b^[a-zA-Z]+\\-[0-9]{10,10}\\.[xml]{3,3}$\\b");
我尝试添加'#?'在边界之前但无法使其正常工作,任何人都可以提供协助。
答案 0 :(得分:5)
在边界之前简单地添加#?
将不允许正则表达式匹配#id-1321952010.xml,因为它会在您声明之后搜索刺痛的开始(^
)它之前可能有一个哈希,这是一个冲突的规则。
为此,move the start-of-string delimiter to the beginning of the regex, outside of the word bound:
^#?\\b[a-zA-Z]+\\-[0-9]{10,10}\\.[xml]{3,3}\\b$
(还将字符串末尾分隔符移到了有效度量的单词之外)
基于@Mat的评论,如果你匹配字符串的开头和结尾,你可能根本不需要单词bounds,因为它们变得多余了。
^#?[a-zA-Z]+\\-[0-9]{10,10}\\.[xml]{3,3}$