在目標串詞:This is a new pen.
正則表達式 - 選擇不完全或部分匹配
我的目標是把上面的字符串到This is a __ __.
用JavaScript這樣的:
const str = "This is a new pen."
const newStr = str.replace(/[^this |is |a |an |the |are |.\s]+/ig, ' __ ').trim()
可悲的是,正則表達式以上使用是錯誤的,因爲它輸出This is a ne __ __ en.
因爲「an」和「the」包含在正則表達式中。
我該如何達到目標,並且仍然在正則表達式中保留「an」和「the」?
編輯:
我修改了原始字符串 測試的an
,and
,that
和's
的效果,除了a
,this
,the
等:
const str = "This is a new pen and that's an old business book."
const newStr = str.replace(/[^this |is |\'s |and |that |a |an |the |are |.\s]+/ig, ' __ ').trim()
所以正則表達式現在比較長,但仍然存在問題。一個理想的結果應該是This is a __ __ and that's an __ __ __.
這個正則表達式並沒有做你期望的。方括號構成一個字符集;集合內字符的排序無關緊要。 – jasonharper
@jasonharper我真的不擅長正則表達式。添加方括號是爲了顯示'^'**的效果,而不是**選擇。 – sijane
@sijane我已經大量更新了我的答案,現在完成了,我不知道你是否收到通知,但是你可能想要查看它。請告訴我,如果它不符合你對撇號的需求,我可能有一些時間來改進它,如果需要的話。 – Aaron