我正在使用perl解析大型報告文件。我通過在報告的一些行的開頭找到姓氏和名字來提取姓名。我試圖排除名稱後面的文字。其中一些文本字段是數字,因此很容易 - 我只是尋找非數字字符。但有些是我可以列出的固定文本字段。如何在perl正則表達式匹配中排除特定文本
E.g. ---
LastNameA, FirstNameA
LastNameB, FirstNameB 345C
LastNameC, FirstNameC BADTEXT
LastNameD, FirstNameD MOREBADTEXT
我曾嘗試以下
/^(\D*)((BADTEXT|MOREBADTEXT|))/
/^(\D*)(BADTEXT|MOREBADTEXT|)/
/^(\D*?)((BADTEXT|MOREBADTEXT|))/
/^(\D*)((BADTEXT|MOREBADTEXT)?)/
/^(\D*)(?:(BADTEXT|MOREBADTEXT|))/
和其他一些組合。但是我沒有得到任何比賽,或者與BADTEXT或MOREBADTEXT的比賽被扣爲1美元而不是2美元。我要麼在$ 2或不匹配的壞文本。
請注意,我不想追加到名稱的文本將是已知文本字符串的非常小的列表之一,所以我可以將它們添加到條件組。
我已經通過perlretut兩次閱讀,但無法找到如何做到這一點。看起來應該很簡單!任何幫助深表感謝。
只是忽略你不想在你的正則表達式中的額外文本:'/(\ w +),(\ w +)/'? –
感謝您的評論,但這不起作用,因爲名稱字段有時具有中間初始,JR,SR等。 – lp1756