2011-01-05 29 views
-1

我需要用於識別名稱的正則表達式,它可以是[a-zA-Z_],然後.(點),然後再次[a-zA-Z_]。 我([a-zA-Z_]+) \.([a-zA-Z_]*)但它不起作用。幫幫我 ? 任何人都可以讓我在JFlex中做到這一點嗎?用於名稱問題的正則表達式

+0

你指的是一個字面點或點元字符(匹配任何東西,但一個新的行)? – 3lectrologos 2011-01-05 10:37:33

+0

我最後一次編輯**僅** **代碼格式,反斜槓存在但不可見。 (即使編輯*看起來像我已經添加了反斜槓 - 這不是我,老實說!!) – 2011-01-05 10:42:00

+5

你是什麼意思的「不工作」?它會產生一個正則表達式編譯錯誤?它是否匹配它應該匹配的東西,或匹配不應該匹配的東西? – 2011-01-05 10:43:17

回答

1

通過轉義點和刪除空格來更改正則表達式。

([a-zA-Z_]+)\.([a-zA-Z_]*)

額外的建議下降(),並使用臨時標識符

編輯:通過註釋的正則表達式

+0

[正則表達式的答案可以在解釋中包含更多細節?](http://meta.stackexchange.com/questions/73553/can-regex-answers-include-more-detail-in-explanation) – delnan 2011-01-05 10:38:14

+0

對不起,謝謝:) – 2011-01-05 10:39:56

+3

即使它工作:從我發佈downvote發表(1)只是一個簡單的正則表達式,沒有解釋*和*(2)沒有將該單行格式化爲代碼。但是我可以改變我的投票;) – 2011-01-05 10:43:37

2

你需要逃脫點聲譽日益提高: 「\。」否則,正則表達式解析器將其視爲保留的「任何字符」符號。

- 編輯 - 現在,我們知道了點被轉義,因此並不是真正的問題:你確定的空間之前的點是故意的?

+0

(它已被轉義 - 只要你應用代碼格式化就會顯示反斜線) – 2011-01-05 10:39:46

+0

@Andreas_D:mmm ......你說得對。我想OP應該提供更多信息。 – 2011-01-05 10:42:07

+0

如果這種模式是從原始代碼複製粘貼的,那麼,我敢打賭,'\ .'之前的空格是實際顯示的終止符 – 2011-01-05 10:59:22