回答編集履歴

1

perl5でのテスト/サンプル実行例を追記

2019/10/22 10:39

投稿

dodox86
dodox86

スコア9254

test CHANGED
@@ -37,3 +37,77 @@
37
37
 
38
38
 
39
39
  もう少し上手いやり方があるかもしれませんので、他の方の回答を待ってみても良いかもしれません。
40
+
41
+
42
+
43
+ ---
44
+
45
+ **追記しました:2019-10-22 19:39**
46
+
47
+
48
+
49
+ > 文字列について否定の正規表現`(?!re)`が使えれば1つでできると思ったのですが、
50
+
51
+
52
+
53
+ Googleスプレッドシート上では適いませんでしたが、`(?!re)`が使える別のプログラミング言語なら本当にできるか気になったので、Perl5の以下のコードで確認しました。正規表現としては `^(?!.*XY)^[0-9a-zA-Z,-]+$` になります。他のプログラミング言語でもこれで行けるはずです。
54
+
55
+
56
+
57
+ ```Perl5
58
+
59
+ # perl v5.26.3
60
+
61
+ while (<>) {
62
+
63
+ if (/^(?!.*XY)^[0-9a-zA-Z,-]+$/) {
64
+
65
+ print;
66
+
67
+ }
68
+
69
+ }
70
+
71
+ ```
72
+
73
+
74
+
75
+ 実行例:
76
+
77
+ ```bash
78
+
79
+ $ cat data.txt
80
+
81
+ AB123456789
82
+
83
+ Amazon-123
84
+
85
+ XY123456789
86
+
87
+ YX123456789
88
+
89
+ XX123456789
90
+
91
+ YY123456789
92
+
93
+ Amazon+123
94
+
95
+ Amazon!123
96
+
97
+
98
+
99
+ $ perl t1.pl data.txt
100
+
101
+ AB123456789
102
+
103
+ Amazon-123
104
+
105
+ YX123456789
106
+
107
+ XX123456789
108
+
109
+ YY123456789
110
+
111
+ ```
112
+
113
+ 。。。ご要望を満たせているようです。以上、ご参考まで。