1

我无法识别潜在的哈希字符。我正在使用以下模式来识别表单文件:id-1321952010.xml。其中一些文件可能在 id 之前包含一个 #,因此:#id-1321952010.xml 也需要被选中。

目前对于最初的案例,我有:

QRegExp rxLogFileFormat("\\b^[a-zA-Z]+\\-[0-9]{10,10}\\.[xml]{3,3}$\\b");

我试过添加“#?” 在边界之前但无法使其正常工作,任何人都可以提供帮助。

4

1 回答 1

5

简单地#?在边界之前添加将不允许正则表达式匹配#id-1321952010.xml,因为它会^在您声明之前可能有一个散列之后搜索 sting ( ) 的开头,这是一个冲突的规则.

为此,请将字符串开始分隔符移动到正则表达式的开头,在单词 bound 之外

^#?\\b[a-zA-Z]+\\-[0-9]{10,10}\\.[xml]{3,3}\\b$

(也将字符串结尾分隔符移到单词边界之外,以便更好地衡量)

还,

根据@Mat 的评论,如果您匹配字符串的开头和结尾,您可能根本不需要单词边界,因为它们变得多余。

^#?[a-zA-Z]+\\-[0-9]{10,10}\\.[xml]{3,3}$
于 2011-11-22T09:05:32.423 回答