我正在使用一些正则表达式匹配,并试图弄清楚如何排除特定字符模式。具体来说,我要排除以下模式:如何用正则表达式排除特定字符模式
5 - #in words: digit, space, dash & space)
我知道如何逐一排除的组件:[^5 ^-]
但我希望排除的特定模式。这可能吗?
更新 - 我使用Ruby作为我的编程语言。
下面是一些示例输入和期望的输出:
Input: 1 - Blue-Stork Stables; 2 - Young, Robert, S.; 3 - Seahorse Stable; 4 - Carney, Elvis; 5 - Guerrero, Juan, Carlos-Martin; 6 - Dubb, Michael; 7 - Summers, Hope; 8 - DTH Stables; 9 - Peebles, Matthew\n
所需的输出将是:
Output: Blue-Stork Stables; Young, Robert, S.; Seahorse Stable; Carney, Elvis; Guerrero, Juan, Carlos-Marting; Dubb, Michael; Summers, Hope; DTH Stables; Peebles, Matthew\n
请采取蓝鹳马厩和胡安·卡洛斯·马丁的破折号的音符。
what * exactly * d你的意思是“排除”?应该只有确切的模式阻止匹配,或者如果可以在字符串的开头或字符串中的任何位置找到该模式?请提供一些您希望/不希望匹配的字符串示例。 – 2012-03-31 14:11:04
“[^ 5^- ]”没有办法像你打算的那样工作。匹配一个*单个字符*,即**不是**'5','','^'或'-'。 – Kobi 2012-03-31 14:14:06
我的意思是它将匹配除了我排除的所有内容。例如,我将在制表符分隔的文件上使用此排除[^ \ t] +,因为它会匹配所有数据并排除制表符。 – Mutuelinvestor 2012-03-31 14:15:40