【问题标题】:How can I separate CSS elements and values using regex?如何使用正则表达式分隔 CSS 元素和值?
【发布时间】:2013-11-29 12:40:41
【问题描述】:

我有 CSS 文件,想在表单字段中分隔元素和值,以便使用正则表达式对其进行编辑。

这是我的 CSS:

<cfsavecontent variable="css">
    .input-block-level {
      display: block;
      width: 100%;
      min-height: 30px;
      -webkit-box-sizing: border-box;
         -moz-box-sizing: border-box;
              box-sizing: border-box;
    }

    ##map_canvas img,
    .google-maps img {
      /*edit*/max-width: none;
    }

    #sup {
      position: relative;
      font-size: 75%;
      line-height: 0;
      vertical-align: baseline;
    }
</cfsavecontent>

我尝试了下面的表达式来提取左大括号和右大括号之间的元素。它工作正常,但我想知道如何获取由行分隔的元素和值。

<cfset reg1 = REMatch("{(?i)(.+?)}",css) />
<cfdump var="#reg1#" label="braces">

如何编写正则表达式模式来分隔元素和值?提前致谢。

【问题讨论】:

  • 您需要证明您确实尝试过自己解决此问题,否则您似乎只是在要求我们为您完成工作。你尝试过什么,你在哪里卡住了?
  • 对不起,我已经更新了。
  • 你是说要把css放到一个表单域中,让用户去编辑?首先 css 是从哪里来的?
  • 嗯?我不明白你在做什么或解释什么,但很有可能你做错了——你真的应该寻找一个 CSS 解析器(很确定 Ben Nadel 在 CF 中做过一个)。

标签: regex coldfusion


【解决方案1】:

这对我来说可以拆分项目和值,但不确定它是否正是您所需要的:

<cfset reg1 = REMatch("{(?i)(.+?)}",css) />

<cfloop index="item" array="#reg1#">    
    <cfset lines = listToArray(item, Chr(10))>

    <cfloop index="line" array="#lines#">
        <cfset arrLine = listToArray(line, ":")>

        <cfif arrayLen(arrLine) EQ 2>
            <cfset item = trim(arrLine[1])>
            <cfset value = trim(arrLine[2])>
            <cfoutput>
                item: #item#<br>
                value: #value#<br>
                <br>
            </cfoutput>
        </cfif>
    </cfloop>
</cfloop>

【讨论】:

  • 我不知道为什么我会得到每个元素和值的左大括号和右大括号。我想要 elements = 'element' 和 values = 'value'
猜你喜欢
  • 2013-06-21
  • 1970-01-01
  • 2021-12-31
  • 2013-02-08
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多