0

この正規表現を使用しています

var str = "The requirements of this chapter apply to the following: (1)New buildings or portions thereof used as health care occupancies (see 1.4.1) (2)Additions made to, or used as, a health care occupancy (see 4.6.6 and 18.1.1.4) Exception: The requirement of 18.1.1.1.1 shall not apply to additions classified as occupancies other than health care that are separated from the health care occupancy in accordance with 18.1.2.1(2) and conform to the requirements for the specific occupancy in accordance with Chapters 12 through 17 and Chapters 20 through 42, as appropriate. (3)Alterations, modernizations, or renovations of existing health care occupancies (see 4.6.7 and 18.1.1.4) (4)Existing buildings or portions thereof upon change of occupancy to a health care occupancy (see 4.6.11) Exception*: Facilities where the authority having jurisdiction has determined equivalent safety has been provided in accordance with Section 1.5.";
str = str.replace(/(\(\d+\)|exception\s*\:*)/gi, "<br /><br />$1&nbsp");

このような出力が得られる場所

18.1.1.1.1 この章の要件は、以下に適用されます。

(1) 医療施設として使用される新しい建物またはその一部 (1.4.1 を参照)

(2) 医療施設の占有に加えられた、またはそれとして使用された追加 (4.6.6 および 18.1.1.4 を参照)

例外: 18.1.1.1.1 の要件は、18.1.2.1 に従ってヘルスケア占有から分離された、ヘルスケア以外の占有として分類される追加には適用されないものとします。

(2) 第 12 章から第 17 章まで、および第 20 章から第 42 章までの必要に応じて、特定の占有率の要件に適合すること。

(3) 既存の医療施設の変更、近代化、または改築 (4.6.7 および 18.1.1.4 を参照)

(4) 占有がヘルスケア占有に変更された既存の建物またはその一部 (4.6.11 を参照)

しかし、私の望ましい出力は

18.1.1.1.1 この章の要件は、以下に適用されます。

(1) 医療施設として使用される新しい建物またはその一部 (1.4.1 を参照)

(2) ヘルスケア占有 (4.6.6 および 18.1.1.4 を参照)(2) に加えられた、またはそれとして使用され、第 12 章から第 17 章および第 20 章から第 42 章に従って特定の占有の要件に適合する、適切に。

例外: 18.1.1.1.1 の要件は、18.1.2.1 に従ってヘルスケア占有から分離された、ヘルスケア以外の占有として分類される追加には適用されないものとします。

(3) 既存の医療施設の変更、近代化、または改築 (4.6.7 および 18.1.1.4 を参照)

(4) 占有がヘルスケア占有に変更された既存の建物またはその一部 (4.6.11 を参照)

ここで(2)、この値の「(see 4.6.6 and 18.1.1.4) (2)」の行を改行します。この形式を取得するにはどうすればよいですか?

4

4 に答える 4

0

括弧内の数字の前に閉じ括弧ではないものを探します。例外部分でそれを偽造する必要があります。「例外」という言葉の前にアルファベット以外を見つけることにしました。これにより、少なくとも前面では、その単語全体が確実になります。(ただし、公平を期すために、「expression」で終わる英単語は思いつきません。)

マッチャーが一致するものを見つける際に、括弧の順序ではなく、正規表現の括弧の順序によって、JavaScript が一致した文字列をどのように番号付けするかに注意してください。そのため、(or のために) 一致しない部分は、$1、$2、$3、および $4 でカウントされます。

str = str.replace(/([^)])(\(\d+\))|([^a-zA-Z])(exception\s*\:*)/gi, "$1$3<br /><br />$2$4&nbsp");

ここで Javascript の正規表現をテストできます: http://www.regexplanet.com/advanced/javascript/index.html

(それが、その表現を機能させるために私がしたことです。)

于 2013-04-09T15:19:19.937 に答える
0

あなたが求めているものを見逃していない限り、正規表現に組み込むことができ(?:\(\d+\))*ますか?

于 2013-04-09T15:19:49.483 に答える
0

使用する

str = str.replace(/(\(\d+\)|exception\s*\:*)(\S)/gi, "<br /><br />$1&nbsp;$2");

動作しているようです: http://jsbin.com/otuteh/1/editを参照してください

于 2013-04-09T15:22:08.863 に答える