当前位置: 首页 > 知识库问答 >
问题:

如何修剪正则表达式替换字符串中的空白

管景天
2023-03-14
    public static string RegExMatchString = "(?<NVE>.{20})(?<SN>.{20})(?<REGION>.{4})(?<YY>\\d{4})(?<Mo" +
    "n>\\d{2})(?<DD>\\d{1,2})(?<HH>\\d{2})(?<Min>\\d{2})(?<SS>\\d" +
    "{2}).{6}(?<USER>.{10})(?<SCANTYPE>.{2})(?<IN>.{4})(?<OU" +
    "T>.{4})(?<DISPO>.{2})(?<ROUTE>.{7})(?<LP>.{16})(?<POOL>.{3})" +
    "(?<CONT>.{9})(?<REGION_L>.{18})(?<CAT>.{2})";
    public string RegExReplacementString = "LogBarcodeID ( \"${NVE}\", ID2: \"${SN}\", Scanner: \"${USER}" +
    "\", AreaName: \"${REGION_L}${CAT}${SCANTYPE}\", TimeStamp: \"${YY}/${Mon}/${D" +
    "D} ${HH}:${Min}:${SS} \") ";
${REGION_L} 
${CAT} 
${SCANTYPE} 

我应该如何更改RegExReplacementString(或者可能是RegExMatchString)以便实现这一点?

示例输入为:

    0034025876080795786104041811071         135 20150304111404      DFRANZ    61    9990020569910                 DA ST6007    135              F

当前我正在获取相关部件
areaname:“135 f61”但我需要获取areaname:“135f61”

编辑:我正在从文本文件中读取正则表达式匹配字符串。和初始化正则表达式;

RegExMatchString = File.ReadAllText(regexMatchStringPath);
regex = new Regex( RegExMatchString ,
    RegexOptions.IgnoreCase | RegexOptions.CultureInvariant
    | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled
    );
string replaced = regex.Replace("0034025876080795786104041811071         135 20150304111404      DFRANZ    61    9990020569910                 DA ST6007    135              F", RegExReplacementString);

共有1个答案

陶飞鸿
2023-03-14

我认为每个字段的固定长度信息将有助于解决这里的问题。

使用诸如:“^(.{20})(.{10})(.{2})(.{2})(.{2})$”这样的正则表达式来隔离每个字段。

这是一个包含5个字段的示例,您知道这些字段是

var testRegex = "^(.{20})(.{10})(.{2})(.{2})(.{2})$";
var testData = "Field of length 20  FieldLen10123456";
var fields = Regex.Match(testData, testRegex).Groups.Cast<Group>().Skip(1).Select(i => i.Value.Trim());
 类似资料:
  • 问题内容: 我正在尝试使用正则表达式替换字符串中所有出现的英国汽车登记信息。 当字符串与以下正则表达式完全匹配时,以下swift代码可完美地用于a。 结果是 但是,以下操作无效,并且字符串未修改 结果是 谁能给我任何指示? 问题答案: 您需要删除和锚点。 该装置 开始字符串 和手段 结束字符串 (或行,这取决于选项)。这就是第一个示例起作用的原因:在第一个测试字符串中,字符串的开头实际上是您的模式

  • 本文向大家介绍正则表达式的字符串替换方法,包括了正则表达式的字符串替换方法的使用技巧和注意事项,需要的朋友参考一下 我有以下几行: d:\Projects\qqq\Development\qqq.MySol1.sln d:\Projects\qqq\qqqDevelopment\qqqMySol2.sln d:\Projects\qqq\Development\MyInstaller.sln d:

  • 问题内容: 我有以下几种可能的形式的字符串: 我希望能够将它正则化为,基本上替换和之间的所有内容。我试过了: 但这是行不通的。任何帮助表示赞赏。 PS 表示有一个换行符用于此目的。实际上不在那里。 问题答案: 您可以使用 并替换为。请参阅在线Go regex演示。 在这里,匹配并捕获子字符串(它将从替换模式中引用此值),并将匹配并消耗除换行符以外的任何0+字符,直至行尾。 参见Go演示: 输出:

  • 我想使用Gson将字符串转换为Foo对象: 下面是我的正则表达式: 如何使用此正则表达式将所有,.和替换为,,而不更改JSON中的键和值?

  • 问题内容: 我有一个字符串: 我要删除paren内部和paren本身中的所有内容,仅保留: 我试图用正则表达式来做到这一点,但是我的困难在于这种模式: 当我使用它时,它总是给我一个。如何修复我的正则表达式? 问题答案: 由于括号是正则表达式中的特殊字符,因此您需要对其进行转义以明确匹配它们。 例如:

  • 我需要替换以下字符串中的引号。 最终输出应该是“这是test()ing和test()ing”; i、 e仅当它以“test()开头,以”结尾时才替换。中间的文本保持不变。 这个坏了。 请为同样的问题推荐合适的正则表达式。