簡體   English   中英

子字符串和第一個點之間的文本

[英]Text between substring and first dot

我有一個文本,我需要替換原始文本中的一些文本。 因此,例如:

原文:帶有附件的公寓。 交易日期01-01-2014在同一地區進行。 英馬庫拉達,10。 建設年:1974。對hpi(4%),面積(-5.00%)進行了調整。 調整后的收市價:1,022.07€/ m2。

我需要找到替換子字符串“ Construction year:”和此子字符串之后的下一個點(。)之間的內容。

最終預期文本:帶附件的公寓。 交易日期01-01-2014在同一地區進行。 英馬庫拉達,10。 新建築年:2010年。對人為中心(4%),面積(-5.00%)進行了調整。 調整后的收市價:1,022.07€/ m2。

不正確的最終文本我正在獲取最后一個點(。),也沒有下一個點,因此子字符串和最后一個點(。)之間的所有內容都發生了更改。 獲得此:

與附件一起出售的公寓。 交易日期01-01-2014在同一地區進行。 英馬庫拉達,10。 新建築年:2010。

var new_genic_comparable_comment = generate_comparable_comment.replace(/(目錄參考:)。。 [[^。] )/,'目錄參考:'+ value +')。');

謝謝。

您使用的正則表達式(Construction year:).*.([^.]*)捕獲一個捕獲組中的Construction Year :: 然后.*匹配除換行符0+次以外的任何字符,並將匹配到字符串的末尾。 之后,它會匹配任何字符1次,而不是0+次而不是點,因此在“ 建設年:”之后將始終保持匹配狀態。

如果要替換“ Construction year:之后的Construction year: ,則可以使用捕獲組$1后跟要替換為的匹配項。 在捕獲組之后,您不能匹配點[^.]+

(Construction year: )[^.]+

正則表達式演示

您可以在正則表達式的末尾添加全局標志/g ,以進行多個匹配。

 const regex = /(Construction year: )[^.]+/; const str = `Flat sold with annexes. Transaction date 01-01-2014 carried out in same area. INMACULADA, 10 . Construction year: 1974. Adjustments made for hpi (4%), area (-5.00%). Closed price after adjustments: 1,022.07 €/m2.`; const subst = `$12010`; const result = str.replace(regex, subst); console.log(result); 

這樣的事情應該工作

  var original = 'Flat sold with annexes. Transaction date 01-01-2014 carried out in same area. INMACULADA, 10 . Construction year: 1974. Adjustments made for hpi (4%), area (-5.00%). Closed price after adjustments: 1,022.07 €/m2.' var newYear = 2010 var updated = original.replace(/Construction year: \\d{4}./, `Construction year: ${newYear}`) console.log(updated) 

replace幫助下,您可以像這樣

 let str =`Flat sold with annexes. Transaction date 01-01-2014 carried out in same area. INMACULADA, 10 . Construction year: 1974. Adjustments made for hpi (4%), area (-5.00%). Closed price after adjustments: 1,022.07 €/m2.` let op = str.replace(/(Construction year: )([^.]+)/g,"$1"+"2010" ) console.log(op) 

聽起來是將String.replace()與某些Regex結合使用的好時機。

非常容易配合,只需使用簡單的正則表達式/Construction year:.*?\\./ replace 無論Construction year:什么,您都將掌握所有內容!

 const text = 'Flat sold with annexes. Transaction date 01-01-2014 carried out in same area. INMACULADA, 10 . Construction year: 1974. Adjustments made for hpi (4%), area (-5.00%). Closed price after adjustments: 1,022.07 €/m2.' function replace(year) { return text.replace(/Construction year:.*?\\./, 'New construction year: '+year+'.') } console.log(replace('2017')); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM