Regex 升华文本3-带驼峰大小写的片段-删除或转换特殊字符

Regex 升华文本3-带驼峰大小写的片段-删除或转换特殊字符,regex,sublimetext3,camelcasing,sublimetext-snippet,Regex,Sublimetext3,Camelcasing,Sublimetext Snippet,我正在更新一些优秀的文本片段,以帮助自动化一些页面开发,但我遇到了一些障碍 对于此代码段,我当前正在尝试获取度量字符串(基于alt文本),以执行以下操作: <snippet> <content><![CDATA[ <div class="div-block"> <!-- Set A --> <div class="place_10 start"> <

我正在更新一些优秀的文本片段,以帮助自动化一些页面开发,但我遇到了一些障碍

对于此代码段,我当前正在尝试获取度量字符串(基于alt文本),以执行以下操作:

<snippet>
    <content><![CDATA[  
    <div class="div-block">
        <!-- Set A -->
        <div class="place_10 start">
            <a href="LinkGoesHere" main_fp_tx="PLACE-_-AH-_-${1:0}_${4:year}_${6/[^a-z0-9]+//ig}">
                <img src="http://images/sv/800/set${2:##}_${3:####}_${4:year}_img${5:#}?\$P_CONTENT\$" alt="${6:ImageAltText}" />
            </a>
        </div>
    </div>]]></content>
    <!-- Optional: Tab trigger to activate the snippet -->
    <tabTrigger>IMGT</tabTrigger>
    <!-- Optional: Scope the tab trigger will be active in -->
</snippet>
当前,当我键入
时,这是一个内容示例。特殊字符示例:20%&&% 注册商标®
进入
ImageAltText
字段,以下是度量字符串中显示的内容:

<div class="div-block">
    <!-- Set A -->
    <div class="place_10 start">
        <a href="LinkGoesHere" main_fp_tx="PLACE-_-AH-_-0_year_ThisisanexampleofcontentSpecialcharacterexamples20amp37registeredtrademarkreg">
            <img src="http://images/sv/800/set##_####_year_img#?$P_CONTENT$" alt="This is an example of content.  Special character examples: 20% & &amp; &#37; registered trademark &reg;" />
        </a>
    </div>
</div>
以下是我想让它做的:

  • 它需要采用驼峰式大小写,这意味着每个单词的每个字母都需要大写
  • 某些符号需要翻译成一个单词。因此,例如,“%”需要表示“百分比”-和“&”(和号),应该表示“和”
  • HTML实体名称不应出现。例如,“®”不应出现在度量中。现在它显示了“注册”这个词。因此,基本上任何介于“&”和“;”之间的内容都不应该出现,也不应该出现“&”和“;”部分。有道理?虽然这是它变得困难的地方-&也不应该出现-或者至少它可以说“和”
以上所说的一切——这就是我正在努力实现的目标

当前版本:
这是一个内容示例特殊字符示例20AMP37 RegisteredTradeMarkreg

我想让它看起来像什么:
这是一个内容特殊字符示例,例如20%和注册商标

我尝试过组合函数,并在某种程度上使其工作,但不是完全工作

所以我希望你们中的一些优秀开发人员可能知道实现这一点的方法。

借用一下:

下面的代码段将使您在键入
时,这是一个内容示例。特殊字符示例:20%&&% 注册商标®
alt
img
属性中,它将在
a
main\u fp\u tx
属性中显示为:
PLACE-\uUah-\uU0\u year\u这是内容特殊字符示例20%和注册商标

<snippet>
    <content><![CDATA[  
    <div class="div-block">
        <!-- Set A -->
        <div class="place_10 start">
            <a href="LinkGoesHere" main_fp_tx="PLACE-_-AH-_-${1:0}_${4:year}_${6/(&amp;)|(&[^; ]+;)|(&)|(\b\w)|(%)|(\W)/(?1And:)(?2:)(?3And:)(?4\u\4:)(?5Percent:)(?6:)/g}">
                <img src="http://images/sv/800/set${2:##}_${3:####}_${4:year}_img${5:#}?\$P_CONTENT\$" alt="${6:ImageAltText}" />
            </a>
        </div>
    </div>]]></content>
    <!-- Optional: Tab trigger to activate the snippet -->
    <tabTrigger>IMGT</tabTrigger>
    <!-- Optional: Scope the tab trigger will be active in -->
</snippet>
  • (&;)
    将符号和HTML实体匹配到捕获组1中<代码>(?1和:)如果捕获组(1)匹配,则将其替换为
    。如果不匹配,什么也不做
  • (&[^;]+;)
    匹配HTML实体<代码>(?2:)如果捕获组(2)匹配,则将其替换为零。如果不匹配,什么也不做
  • (&)
    裸符号和<代码>(?3和:)如果捕获组(3)匹配,则将其替换为
    。如果不匹配,什么也不做
  • (\b\w)
    单词的第一个字母<代码>(?4\u\4:)如果捕获组(4)匹配,请将第一个字母替换为其大写等效字母。如果不匹配,什么也不做
  • (%)
    裸百分比<代码>(?5%:)如果捕获组(5)匹配,则将其替换为
    百分比
    。如果不匹配,什么也不做
  • (\W)
    非单词(a-z、0-9等)字符,包括空格<代码>(?6:)如果捕获组(6)匹配,则将其替换为零。如果不匹配,什么也不做

    • /g
      全局修饰符-即不要在第一次匹配时停止。我删除了
      I
      -不区分大小写的修饰符,因为我的正则表达式中不需要它
    因为捕获组是按顺序匹配和替换的,所以它会在查看空符号之前替换HTML实体,并最后去除非单词字符


    有关替换语法的更多信息,请参见

    我的朋友,你是个天才。我现在明白了为什么我以前的尝试没有成功——至少可以这么说。另外,对字符串中每个条件的作用进行解释是非常棒的。太好了,先生@Hinukan,你的努力是个好的开始!:)我刚刚意识到,我最初错过了您的一项要求—转换
    &
    -我现在编辑了我的答案以包括这一点(同时仍然删除其他HTML实体,并且仍然将裸
    &
    转换为
    ):)太棒了-我非常感谢,先生!
    "ThisisanexampleofcontentSpecialcharacterexamples20amp37registeredtrademarkreg"
    
    <snippet>
        <content><![CDATA[  
        <div class="div-block">
            <!-- Set A -->
            <div class="place_10 start">
                <a href="LinkGoesHere" main_fp_tx="PLACE-_-AH-_-${1:0}_${4:year}_${6/(&amp;)|(&[^; ]+;)|(&)|(\b\w)|(%)|(\W)/(?1And:)(?2:)(?3And:)(?4\u\4:)(?5Percent:)(?6:)/g}">
                    <img src="http://images/sv/800/set${2:##}_${3:####}_${4:year}_img${5:#}?\$P_CONTENT\$" alt="${6:ImageAltText}" />
                </a>
            </div>
        </div>]]></content>
        <!-- Optional: Tab trigger to activate the snippet -->
        <tabTrigger>IMGT</tabTrigger>
        <!-- Optional: Scope the tab trigger will be active in -->
    </snippet>
    
    /(&amp;)|(&[^; ]+;)|(&)|(\b\w)|(%)|(\W)/(?1And:)(?2:)(?3And:)(?4\u\4:)(?5Percent:)(?6:)/g