如何使用正则表达式应用自定义数据格式

我有一个Java应用程序,可以从数据扫描仪中读取条形码,从中提取信息并将其保存到文件中。提取使用正则表达式完成,因为条形码格式多种多样,并且没有关于数据格式化的具体规则。有时需要从位置2到8的字符,或者只需要数字,或者只需要小写的字母和数字,或者只需要数字,但是只有当它们以00开头时,才可能需要提取EAN13条形码的后5位。无法更改代码并使用子字符串或替换之类的字符串方法,因为它们会制定特定的规则,并且我需要应用程序允许用户期望的任何格式;许多具有各种表达式的用户正在使用它。 因此,用户可以输入一个正则表达式,该正则表达式将更改数据扫描器提供的字符串。 代码是这样的:

    Pattern dataPattern = Pattern.compile(dataFormat);
    Matcher dataMatcher = dataPattern.matcher(barcode);
    if (dataMatcher.find()) {
        fieldValue = dataMatcher.group(0);
        save(fieldValue);
    }
用户可以在应用程序设置中编辑

dataFormat,数据扫描仪可以读取barcode。在解决此问题之前,我曾经应用各种正则表达式来提取所有类型的信息:我必须删除尾随的P,例如:字符串P1234变为1234。到目前为止,我使用的所有公式都删除了所有P,如果存在多个一,PP5678变成5678。

我尝试过的一个公式是[^P{1}].*$,但是即使我指定了第一个出现的公式,它仍然会删除两个P。我需要一个仅消除第一个P的公式,因此PP5678变为P5678。这可能吗?

fgfliang123 回答:如何使用正则表达式应用自定义数据格式

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3109930.html

大家都在问