【问题标题】:Regular expression doesn't match like I want正则表达式与我想要的不匹配
【发布时间】:2013-12-23 13:39:24
【问题描述】:

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

(?<=[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。

谢谢。

【问题讨论】:

  • 您能否创建一个 JSFiddle 以便我们测试并帮助解决您的问题?
  • 你使用什么编程语言?
  • 如果你用 blanks (单个空格字符)而不是一个空字符串替换,你怎么能期望结果只是45,没有任何空格,替换后非数字字符?
  • 如果我对您的理解正确,您正在尝试用每个字符一个空格替换任何非数字。那么你为什么不把每一次出现的[^0-9] 替换为` `?
  • @Theox 为什么要在非 JavaScript 问题中询问 JSFiddle?

标签: c# regex


【解决方案1】:

你可以试试这个:

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/

【讨论】:

    【解决方案2】:

    您正在做的是搜索字符串从数字变为字母或从字母变为数字的位置并在此处插入空格。所以是的,45a 变成了45 a

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

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

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

    如果要将数字后面的所有字母替换为空格,请使用

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

    【讨论】:

    • 所以,如果我想替换数字后面的所有字母或替换数字前面的所有字母,我使用:(?&lt;=[0-9])[A-Za-z]+ | [A-Za-z]+(?&lt;=[0-9]) ?
    • 基本上可以,但您需要省略空格(除非您也想删除它们)。
    • 不,我只是这样写,但(?&lt;=[0-9])[A-Za-z]+|[A-Za-z]+(?&lt;=[0-9]) 对我来说更正确。谢谢。
    【解决方案3】:

    目前还不清楚你是想用空格替换所有非数字字符还是完全删除。

    视情况而定

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

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

    应该做你想做的。

    【讨论】:

      【解决方案4】:

      试试这个:

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

      这会将所有非数字字符(字母、空格和字符)替换为空格。

      【讨论】:

      • 您似乎缺少要执行替换的字符串。
      【解决方案5】:

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

      var demo= Regex.Replace(arr[0], "(?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-25
        • 2010-11-22
        • 2013-01-09
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多