2017-10-05 41 views
1

我有中國文字的某些字符串單一完整的句子:解析出包含與正則表達式某些字符串模式

xxxxx.xxxx.xxx.xxx.xxxxx.xxxCxxxx

怎麼辦我使用正則表達式來解析包含字母「C」的句子?

xxxCxxxx

正則表達式:

/。.+?C.+?。/ 

了這樣的結果:

"。xxxx。xxx。xxx。xxxxx。xxxCxxxx。" 

UPDATE:

找到了答案:[^。]*C[^。]*

任何人都可以解釋爲什麼/[^。]*C[^。]*。/作品和/。.+?C.+?。/不?

+0

類似的問題可以在這裏找到(https://stackoverflow.com/q/26081820/6210219)。如果社區認爲這是多餘的,我可以刪除這個問題。 – Sati

回答

1

的解決方案是:[^。]*C[^。]*。

要回答你原來的正則表達式/。.+?C.+?。/爲您想解釋爲什麼它沒有工作會有問題:

  1. 將首先匹配
  2. 然後.+?C將繼續提取字符,直到它找到ç因此這 整個事情將匹配:xxxx。xxx。xxx。xxxxx。xxx
  3. 一旦找到C,你的正則表達式.+?。的最後一部分就會在 的操作中。這一切都取到下一

    所以你得到的結果是:。xxxx。xxx。xxx。xxxxx。xxxCxxxx。

這一個[^。]*C[^。]*。作品你,因爲:。

  1. [^。]*C取什麼,但;並且這些東西必須被C遵循 ,這使得它xxxC
  2. [^。]*。它再次獲取任何東西,但當它找到時停止,並且與它匹配停止。
+0

@ Rizwan,'[^。] *'如何工作? – Sati

+0

@Sati更新了答案,現在清楚了嗎? –

+1

是的,非常感謝。 – Sati

相關問題