嘗試從混合字符值中提取美國電話號碼(以任何格式),只返回ONE或零正則表達式的結果。.net正則表達式返回2個結果,我只想要1
實施例: yyy666 555 5555yyyy1
圖案(?<!\d)\(?([\d]{3})*\)?[\s-]?[\d]{3}[\s-]?[\d]{4}(?!\d)
正在返回:
「666 555 5555」, 「666」。
我不希望第二個結果「666」(僅包含區號),應該只有一個結果或結果爲零(即該示例中的回報只能是一個完整的電話號碼「 666 555 5555「或什麼都不)。
我在想什麼/我如何讓它返回0或1結果?
我認爲,如果你不要第二個結果,這是捕獲組1,那麼你不應該讀它。如果你不想改變表達式,就沒有必要改變它,你可以簡單地不讀它。你的代碼是什麼樣的? – sln
事實是你可能在將來某個時候需要這些部件'(?<!\ d)\(?([\ d] {3})* \)?[\ s - ]?([\ d] { 3})[\ s - ]?([\ d] {4})(?!\ d)'不需要做出不同的表達式。與往常一樣,group0是整個比賽,但您可能需要使用這些部分重新格式化,這就是我所要做的。 – sln
有效的點,事實上,這正是我與之合作的開發人員所說的我們可以做的。我不是開發人員,也無法訪問代碼,因爲我只是在爲我們正在執行的(區域性)OCR項目的特定數據字段(如電話號碼,日期等)創建正則表達式。感謝一堆反饋! – Alex