2017-09-14 61 views
0

這裏是正則表達式我使用標記者:[^a-zA-Z\'-]+適當的正則表達式來標記句子與領先的破折號

但是,如果我想將它應用於一句是這樣的: -This is a test. -yes, it's a test for self-consciousness 其結果將是['-This', 'is', 'a', 'test', '-yes', "it's", 'a', 'test', 'for', 'self-consciousness']那裏正在領先-之前Thisyes。有沒有辦法消除領先的-?也許對正在使用的正則表達式進行一些修改?

[^a-zA-Z']+ 

我建議使用下面這個網站:

+0

https://regex101.com/r/Ql7lWq/1 – sln

回答

0

這將這樣的伎倆。它有助於調試這樣的事情。

https://regexr.com/

+0

不是這個,它會將自我意識分裂爲「自我」和「意識」 –

1

你會需要一些東西來限定在中間的衝刺。

由於您使用底片將其拆分,因此您必須允許
錯誤的短劃線匹配。

(?:[^a-zA-Z'-]|(?<![a-zA-Z'])-|-(?![a-zA-Z']))+

https://regex101.com/r/Ql7lWq/1

(?: 
     [^a-zA-Z'-]   # not any of these 
    |     # or, 
     (?<!    # allow a dash if not preceded by one of the others 
      [a-zA-Z'] 
    ) 
     - 
    |     # or, 
     -     # allow a dash if not followed by one of the others 
     (?! [a-zA-Z']) 
)+ 
+0

似乎對我的情況很好。謝謝! –

0
-?[^a-zA-Z-']+-?|^-|-$ 

-?可選破折號是我們所期待的。

+0

你可能會認爲這可能有效,但它不夠精細。試試'(?: - ?[^ a-zA-Z - '] - ?)+ |^- + | - + $'另外,它不會匹配abc' ---'efg,它可能是也可能不是一個連字符的一部分,因爲它不符合.' [^ a-zA-Z - ']' – sln

相關問題