1

正規表現で別の検索/置換を試みていますが、つまずいた奇妙なキャラクターがいくつかいます。


要約:(このカラットで区切られたファイルの)
一部の行には、部品番号の後にペレン( "(S)"または "(N)")の特定のタグが1つまたは2つあり、PNの前に移動する必要があります。注:(S)と(N)の両方を含む行の場合、常に次の順序になります:(S)(N)


主題:

^ 901A-123 ^ DESC、OF、PROD、AND、STUFF ^ $ 28.87 ^ $ 23.10 ^-^-^-^-^^
^ 123B-C45(N)^ DESC、OF、PROD、AND、STUFF ^ $ 1,224.87 ^ $ 1,041.10 ^-^-^-^-^^
^ 333-11(S)(N)^ DESC、OF、PROD、AND、STUFF ^ $ 510.67 ^ $ 459.50 ^ $ 382.90 ^ 2 ^ $ 357.40 ^ 4 ^ ^
^ 333-987M-88(S)^ DESC、OF、PROD、AND、STUFF ^ $ 608.77 ^ $ 547.90 ^ $ 456.50 ^ 2 ^ $ 426.10 ^ 4 ^^


私が試したこと:
のようなものを試し始めましたが、すぐに^(カラット)が物事を複雑にしているのではないかと思い始めたので、それをエスケープしてみました。 それは違いを生まないようでした:) それで次に私はすべてのカラットをパイプに変えてみました:^(.+)\(N\)^^([A-Za-z0-9]+)\(N\)^

| 901A-123 | DESC、OF、PROD、AND、STUFF | $ 28.87 | $ 23.10 |-|-|-|-||
| 123B-C45(N)| DESC、OF、PROD、AND、STUFF | $ 1,224.87 | $ 1,041.10 |-|-|-|-||
| 333-11(S)(N)| DESC、OF、PROD、AND、STUFF | $ 510.67 | $ 459.50 | $ 382.90 | 2 | $ 357.40 | 4 ||
| 333-987M-88(S)| DESC、OF、PROD、AND、STUFF | $ 608.77 | $ 547.90 | $ 456.50 | 2 | $ 426.10 | 4 ||

...そしてで検索して|([A-Za-z0-9]+)\(N\)|、今私は...それを待っています..... 何もありません:)


目標:
今のところ、Findを理解するという小さな勝利には満足していますが、最終的な目標は、(PNの)後方参照に置き換えることです。
目標は、主題を次のように見せることです。

^ 901A-123 ^ DESC、OF、PROD、AND、STUFF ^ $ 28.87 ^ $ 23.10 ^-^-^-^-^^
(N)^ 123B-C45 ^ DESC、OF、PROD、AND、STUFF ^ $ 1,224.87 ^ $ 1,041.10 ^-^-^-^-^^
(S)(N)^ 333-11 ^ DESC、OF、PROD、AND、STUFF ^ $ 510.67 ^ $ 459.50 ^ $ 382.90 ^ 2 ^ $ 357.40 ^ 4 ^ ^
(S)^ 333-987M-88 ^ DESC、OF、PROD、AND、STUFF ^ $ 608.77 ^ $ 547.90 ^ $ 456.50 ^ 2 ^ $ 426.10 ^ 4 ^^


ありとあらゆるポインタ/提案を歓迎します。

4

3 に答える 3

1
  • ^どちらも|エスケープする必要があるメタ文字です。
  • あなたの文字クラス[A-Za-z0-9]+にはダッシュが含まれていません。

だから、これを試してみてください:

(\^[A-Za-z0-9-]+)((?:\(S\))?(?:\(N\))?)

と置き換えます

\2\1
于 2013-02-01T15:14:55.987 に答える