首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >正则表达式在何种配置文件格式下不需要转义?

正则表达式在何种配置文件格式下不需要转义?
EN

Software Engineering用户
提问于 2021-09-19 23:06:27
回答 5查看 3.7K关注 0票数 13

我需要一个.NET程序的配置文件。此文件用于配置对正则表达式。正则表达式属于节的层次结构。

代码语言:javascript
运行
AI代码解释
复制
Section1
    SubsectionA
        regular expression
        regular expression
    SubsectionB
        regular expression
        regular expression
Section2
    (etc.)

或以Markdown格式

代码语言:javascript
运行
AI代码解释
复制
# Section1

## SubsectionA

    regular expression
    regular expression

无论如何,我想要一种配置文件格式,其中正则表达式文字不需要转义。

什么配置文件格式支持这一点?即使是YAML也需要转义。

我上面展示的两个示例--即缩进文本文件和Markdown --是可以的,但不符合标准。

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2021-09-19 23:23:13

XML中的CDATA部分应该这样做。

这里有一个关于它的堆栈溢出帖子:https://stackoverflow.com/questions/2784183/what-does-cdata-in-xml-mean

我记得我花了一段时间才懂得如何使用它们。DOM解析器有用于创建CDATA部分的专用指令,但没有用于读取它们的等效语句。读取是透明的,您只需读取包含CDATA部分的元素的内容,就可以返回文字文本。

下面是我曾经做过的代码检查器的输入数据文件中的一个示例。它允许使用正则表达式定义有问题的代码片段的形式。

代码语言:javascript
运行
AI代码解释
复制
<IssueBuster type="Basic" name="Suspicious lambdas" skip="true">
    <Description>
        <!-- See https://stackoverflow.com/questions/2465040/using-lambda-expressions-for-event-handlers -->
        A lambda expression is used for event handlers which inhibits unsubscribing.
    </Description>
    <Regex><![CDATA[\+\=\s*\([^\s\,]+\,\s*[^\s\)]+\)\s*=>]]></Regex>
    <SkipFileNames>
        <!-- If any of these inner texts appears in a file path, this buster will ignore that file. -->
        <FileName>SMMdataComponent\DeltaPlusGenerator\TestForm.cs</FileName>
        <FileName>Toolchain\Validate-TranslationEnums</FileName>
        <FileName>Tools\JcSimulator</FileName>
        <FileName>Tools\AR3toGps</FileName>
        <FileName>Tools\XMLConverter</FileName>
        <FileName>GitManipulator.cs</FileName>
    </SkipFileNames>
</IssueBuster>

请注意,CDATA采用以下形式:

代码语言:javascript
运行
AI代码解释
复制
<![CDATA[your_literal_text]]>

无论您在内部方括号中放入什么内容,都将逐字返回。

结束这一点:在不太可能的情况下,您必须在内容中包含一个]>序列,您可以在第二个之后拆分内容]并创建两个连续的CDATA部分。这可以很容易地递归实现。

票数 16
EN

Software Engineering用户

发布于 2021-09-20 06:32:47

考虑一下TOML

它处理两种不同形式的原始字符串:

代码语言:javascript
运行
AI代码解释
复制
regex    = '<\i\c*\s*>'

代码语言:javascript
运行
AI代码解释
复制
regex2 = '''I [dw]on't need \d{2} apples'''
票数 10
EN

Software Engineering用户

发布于 2021-09-20 23:44:27

滚动您自己的

似乎是一种足够简单的格式;只需编写自己的自定义解析器,将纯文本文件(可能就像您的第一个示例)反序列化到对象模型中即可。这可能需要几十行代码。

您有一个简单的、特定于领域的问题要解决;为什么要用一堆通用的约束和要求来满足某种标准格式呢?它给你什么好处?您已经花费了更多的时间寻找一个现有的库,而不是仅仅编写代码所需的时间。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/432048

复制
相关文章
正则表达式中需要转义的字符
记一下几个需要转义的正则表达式字符 字符 用途 $ 匹配输入字符串的结尾位置 ( ) 标记一个子表达式的开始和结束位置 * 匹配前面的子表达式零次或多次 + 匹配前面的子表达式一次或多次 . 匹配除
薛定喵君
2021/04/15
6.1K0
正则表达式需要转义的特殊字符
正则表达式中有些字符具有特殊的含义,如果在匹配中要用到它本来的含义,需要进行转义(在其前面加一个\)。
week
2021/05/06
4.1K0
无论在何种场景下使用sync
上电看一下系统能不能跑起来。然后将SD卡插入电脑,将编译好的u-boot.bin文件传入到SD卡中,修改一下config.txt文件。我是参考博客。遴选真题将树莓派的设备树都放好后发现还是可在博客中下图所示位置;们都知道,使用锁就意味着要把一些并发的操作强制串行化。这往往会降低程序的性能,尤其是在计算机拥有多个 CPU 核心的情况下。
用户7737280
2021/11/27
2040
Linux Shell 中需要转义的字符
在 Linux Shell 中,有很多字符是有特殊含义的,如果期望把这个字符当作普通字符来处理,需要经过 \ 的转义。
walterlv
2023/10/22
1.8K0
正则中需要转义的特殊字符
正则表达式中有一些特殊的字符需要转义,收集整理如下: 特殊字符         说明 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 . 匹配
流柯
2018/08/31
4.1K0
使用Bash时,哪些字符需要转义?
Bash 中需要转义的字符是否有一个完整的列表?只用 sed 可以检查吗? 特别地,我正在检查 % 是否需要转义。我试着
程序熵
2025/01/13
870
使用Bash时,哪些字符需要转义?
java split()使用“.” “\” “|“ “*“ “+“来分割时,需要转义
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test{ public static void main(String[] args){ Scanner in = new Scanner(System.in); String string=in.nextLine(); //要使用"."分割,必须使用\\转义:如:split("\\.");
向着百万年薪努力的小赵
2023/03/16
1.2K0
浅谈配置文件格式
计算机上有数以千计的配置文件。你可能永远不会直接与其中的大部分文件打交道,但它们确实散落在你的 /etc 以及 ~/.config、~/.local、/usr 文件夹中。还有一些可能在 /var,甚至 /opt 文件夹中。如果无意中打开过或更改过它们,你就可能会有疑问:为什么有些配置文件看起来是某一种格式,而另一些则是看起来完全不同的格式?
用户8639654
2021/10/11
7310
js正则表达式转义字符-【JavaScript正则表达式RegExp】
  默认情况下,正则表达式引擎会尝试尽可能多地重复量词字符。例如,\d+ 会消耗所有可能的字符。当无法消耗更多(在尾端没有更多的数字或字符串)时,然后它再匹配模式的剩余部分。如果没有匹配,则减少重复的次数(回溯),并再次尝试。
宜轩
2022/12/26
2.1K0
mysql查询下划线_需要做转义处理
今天处理公司业务id时查询_1结尾的数据like “%_1”,把包含1的数据都查出来了。这是因为下划线也被当作特殊字符,做了任意匹配转换了,所以,要想匹配下划线,那么就需要“转义”一下。
kl博主
2023/11/17
3380
token定义在区块链旅游中担任何种角色?
对于旅游业的发展来说,区块链技术同样没有缺席。Token,常见于区块链旅游的文章中。Token是什么?有人翻译成通证,有人翻译成代币,中国人民大学教授杨东,称其为“共票”。然而,放在区块链旅游平台中,Token更多地是指“积分”。例如,乐鸥在线文旅这一区块链旅游平台,自构建之初,就在其旅游生态圈中搭建起了Token系统,作为区块链旅游平台流通与循环使用的工具。
区块链先锋
2018/08/23
2.1K0
token定义在区块链旅游中担任何种角色?
js正则表达式转义字符-4.   正则表达式的使用
  2. 特点:灵活、逻辑性非常强、以非常简单的方式对字符串进行复杂的控制 3. 创建正则表达式
宜轩
2022/12/26
1.6K0
配置文件格式 JSON 快速上手
JSON(JavaScript Object Notation) 是轻量级的文本数据交换格式,独立于语言,具有自我描述性。JSON 类似于 XML,但比 XML 更小、更快,更易解析。
恋喵大鲤鱼
2024/07/21
1270
程序常用配置文件格式介绍
不管是移动应用、桌面程序还是后台服务,经常需要从配置文件中读取配置信息,进行程序初始化和改变运行时的状态。以什么要的格式来存储配置信息,这是开发人员需要面临的一个问题。常用的配置文件格式主要有:
恋喵大鲤鱼
2022/05/09
3.2K0
程序常用配置文件格式介绍
mysql通配符转义_转义MySQL通配符
_而%不是通配符在MySQL一般,而且不应该被转义,将它们放入普通的字符串字面量的目的。mysql_real_escape_string是正确的,足以满足此目的。addcslashes不应该使用。
全栈程序员站长
2022/07/04
5.1K0
配置文件格式 XML 快速上手
XML 文档结构是一种树结构,它从“根部”开始,然后扩展到“枝叶”。XML 文档必须有一个唯一的根结点,根结点包含所有其它结点。所有结点均可拥有文本内容和属性(名称/值的对)。XML 结点也叫做 XML 元素。
恋喵大鲤鱼
2024/07/21
1200
配置文件格式 INI 快速上手
INI 的全称是 Initialization,即为初始化文件,最早是 Windows 系统配置文件所采用的格式。
恋喵大鲤鱼
2024/07/22
4230
python 字符转义(url中文转义)
大家好,又见面了,我是你们的朋友全栈君。URL特殊字符需转义 1、空格换成加号(+) 2、正斜杠(/)分隔目录和子目录 3、问号(?)分隔URL和查询 4、百分号(%)制定特殊字符 5、#号
全栈程序员站长
2022/07/29
8K0
配置文件格式 TOML 快速上手
GitHub 联合创始人 Tom Preston-Werner 觉得 YAML 不够简洁优雅,如缩进要严格对齐,因此和其他几位开发者一起捣鼓了一个 TOML(Tom’s Obvious Minimal Language)。
恋喵大鲤鱼
2024/04/20
1.1K0
企业价值观在ERP中以何种方式呈现?
提供自定义平台,将业务功能模块化、接口标准化(SOA架构设计)。用户可以灵活的按自己需求,编排组合自己的业务流程,从而达到优化现有流程。
明象ERP
2019/03/01
8590

相似问题

为什么CSV文件格式通常使用引用而不是转义?

20

工厂模式以何种方式分离类依赖?

40

Orgmode文件格式许可

10

解析多个文件格式/协议

20

ML培训的最佳文件格式

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文