[ruby-list:50660] [質問] gsub 正規表現後方参照

From: <yamataka@...08.itscom.net>
Date: 2018-04-25 05:47:14 UTC
List: ruby-list #50660
山口と申します。

gsub 正規表現の後方参照が、うまく動作せずに悩んでおります。

下記[コード]のline文字列中のCustom field (....) の部分、.... だけにした
く、
gsub を利用し、
line.gsub(/Custom field \(\w+( \w+)*\)/, '\1')
としたのですが...
正規表現中の() で囲まれた部分が、\1 の後方参照で置き換わらなくて悩んでお
ります。

ご教示いただけますでしょうか?

[コード]
require 'pp'
line = 'Issue key,Issue id,Issue Type,Priority,Custom field (Defect_Rank)
,Custom field (Frequency),Status,Labels,Custom field (FixType),Custom 
field (CancelType),Summary,Custom field (CauseDetails),Custom field (
JudgementDetails),Reporter,Assignee,Created,Custom field (
DefectiveFunction),Custom field (Detection Phase),Component/s,Component/
s,Component/s,Custom field (DetectedDate),Custom field (Summary keyword1)
,Custom field (Summary keyword2),Custom field (Judgement),Resolved,
Custom field (Settlement)'

pp line
pp line.gsub(/Custom field \(\w+( \w+)*\)/, '@@@') # => 結果より、正規表
現の記述は間違っていない。
pp line.gsub(/Custom field \(\w+( \w+)*\)/, '\1')  # => 正規表現中の() 
で囲まれた部分が、\1 なので置き換わるはずが...


[結果]
"Issue key,Issue id,Issue Type,Priority,Custom field (Defect_Rank),
Custom field (Frequency),Status,Labels,Custom field (FixType),Custom 
field (CancelType),Summary,Custom field (CauseDetails),Custom field (
JudgementDetails),Reporter,Assignee,Created,Custom field (
DefectiveFunction),Custom field (Detection Phase),Component/s,Component/
s,Component/s,Custom field (DetectedDate),Custom field (Summary keyword1)
,Custom field (Summary keyword2),Custom field (Judgement),Resolved,
Custom field (Settlement)"
"Issue key,Issue id,Issue Type,Priority,@@@,@@@,Status,Labels,@@@,@@@,
Summary,@@@,@@@,Reporter,Assignee,Created,@@@,@@@,Component/s,Component/
s,Component/s,@@@,@@@,@@@,@@@,Resolved,@@@"
"Issue key,Issue id,Issue Type,Priority,,,Status,Labels,,,Summary,,,
Reporter,Assignee,Created,, Phase,Component/s,Component/s,Component/s,, 
keyword1, keyword2,,Resolved,"



In This Thread

Prev Next