正则表达式与我想要的不匹配

时间:2013-12-06 09:03:58

标签: c# regex

所以,我得到了一个正则表达式:

(?<=[0-9])(?=[A-Za-z])|(?<=[A-Za-z])(?=[0-9])

应找到所有字母并将其替换为空白。

var nomDoc = Regex.Replace(arr[0], "(?<=[0-9])(?=[A-Za-z])|(?<=[A-Za-z])(?=[0-9])", " ");

但是当我举个例子时:

45a, nomDoc成为45 a,而我则希望45

我写这个正则表达式错了吗?我不是很擅长,但我觉得我对这个很好。

正则表达式必须替换所有非数字字符,后跟数字字符或数字前的所有非数字字符。

45a或a45必须给我45。

谢谢。

5 个答案:

答案 0 :(得分:1)

您正在做的是搜索字符串从数字变为字母或从字母变为数字并在那里插入空格的位置。是的,45a变为45 a

如果要用空格替换所有字母,请使用

 var nomDoc = Regex.Replace(arr[0], "[A-Za-z]", " ");

但我怀疑这是你想要的。
如果要删除所有字母,请替换为空字符串而不是空格。

如果您想用空格替换数字后面的所有字母,请使用

var nomDoc = Regex.Replace(arr[0], "(?<=[0-9])[A-Za-z]+", " ");

答案 1 :(得分:1)

试试这个:

var str = "1 oo 23ksls 4910fsj2jd43ld fkkd ^&?&;@";
var nomDoc = str.Replace('/([^0-9]|\n)/g', ' ');

用空格替换所有非数字字符(字母,空格和字符)。

答案 2 :(得分:0)

你可以试试这个:

var nomDoc = Regex.Replace(arr[0], "[^0-9]", "");

如果你使用的是Javascript,这里有一个小提琴:

var Str = "blablabla22445543__-_-_-_-_-_-èèpzofez5zsqef*f-e+ffnfuf'3";

var nomDoc = Str.replace(/[^0-9]/g, "");

$("#result").html(nomDoc); 

http://jsfiddle.net/ZqF6L/

答案 3 :(得分:0)

目前还不是很清楚是否要用空格替换所有非数字字符,或者只是完全删除。

取决于此,

var nomDoc = Regex.Replace(arr[0], "[^0-9]", " ");

var nomDoc = Regex.Replace(arr[0], "[^0-9]", "");

应该做你想做的事。

答案 4 :(得分:0)

嘿,如果你想删除所有单词,请使用以下格式方法

var demo = Regex.Replace(arr [0],“(?&lt; = [0-9])[A-Za-z] +”,“”);