字符之间添加一个可选空格的字符串

问题描述:

我有一个字符串,Exampe字符之间添加一个可选空格的字符串

string SampleString = "F456-G12345-9090-GHI" 

我需要在上面的字符串中的所有字符之间添加一个可选的空白。

上面的字符串需要匹配相同的字符串,它可能会或可能不会有ewach字符之间的空格。另一个字符串会像

string samplestring1 = "F456-G12345- 9090 -GHI" 

感谢 帕德玛

+0

你能否详细说明一下字符串。例如,它是否使用空格和破折号分隔大写字母和数字?这将有助于构建更加灵活和简洁的表达。 – 2012-01-04 16:46:25

你可能会到每个字符之间添加\s*。 (为空白或其他控制字符)

\s*F\s*4\s*5\s*6\s*-\s*G\s*1\s*2\s*3\s*4\s*5\s*-\s*9\s*0\s*9\s*0\s*-\s*G\s*H\s*I\s* 

,或者根据您的正则表达式的话,你也许可以通过选择忽略源文本的空白,但是这将取决于它的正则表达式库你使用。

+0

你的斜杠是错误的 - 它不是'/ s'。 – 2012-01-04 16:44:37

+0

@JasonMcCreary谢谢。固定。 – McKay 2012-01-04 16:46:59

我不是很积极,我明白你会匹配什么。如果你正在寻找一个特定的字符串,那么最简单的方法就是用字符串替换所有的空白字符,然后进行匹配。

在Perl中我会做:

$string =~ s/\s//g; 
while ($string =~ m/F456-G12345-9090-GHI/g) { 
    # Do something 
} 

如果您正在寻找多个字符串,而不仅仅是特定的一个,你可能只是想添加\ S作为潜在的匹配[\ W \但是,如果你要与特定的字符串进行匹配,那么我只是先扔掉整个空白布,而不是执行昂贵的正则表达式检查(并放弃)检查之前发现的任何空格字符串。

+0

我需要将字符串F456-G12345-9090-GHI与txt文件中的相同字符串进行比较。但是有时候txt文件中的字符串有多行。例如F456-G12345-9090-GHI变为F456-G12345-9090-GHI。我需要检查F456-G12345-9090-GHI == F456-G12345-9090 -GHI – user1130352 2012-01-04 18:16:08