text-parsing 相关问题

文本解析是解析的一种变体,它指的是将文本流分解为不同组件并捕获这些组件之间关系的操作。

JavaScript:解析此字符串

这里是一个很长的字符串(实际上是一个JSON键值): "\u003cspan title=\"5 个金色徽章\"\u003e\u003cspan class=\"badge1\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e5\u003...

回答 4 投票 0

解析字符串并隔离两个分隔数字

如何使用 preg_match 从字符串中选择两个数字? 我之前使用过 preg_match 仅选择 和 # 标签。 例如,我需要选择方程中的两个数字: $</desc> <question vote="0"> <p>如何使用 <pre><code>preg_match</code></pre> 从字符串中选择两个数字? 我之前使用过 <pre><code>preg_match</code></pre> 仅选择 <pre><code>&lt;iframe&gt;</code></pre> 和 <pre><code>#</code></pre> 标签。</p> <p>例如,我需要选择方程中的两个数字:</p> <pre><code>$message = &#39;whats 23x347?&#39;; </code></pre> <p>并给我一个输出变量:</p> <pre><code>$first_number = 23 $seccond_number = 347 list($first_number, $second_number) = preg_split(&#34;/x/&#34;,$message); </code></pre> <p>这大部分有效,但是它不会删除之前或之后的非数字文本。</p> </question> <answer tick="false" vote="2"> <p>如果将中间的运算符作为数学符号进行匹配,则可以将其传递给另一个函数,然后能够计算多种表达式类型:加法、减法等。</p> <p>简单的preg_match</p> <pre><code>preg_match(&#34;/(\d+)\s*?(\*|\.|x|\-|\+|\/|\%|\^)\s*?(\d+)/&#34;, $str, $matches) </code></pre> <p>在某些函数中使用正则表达式</p> <pre><code>function parseExpression($str=&#39;&#39;) { if (preg_match(&#34;/(\d+)\s*?(\*|\.|x|\-|\+|\/|\%|\^)\s*?(\d+)/&#34;, $str, $matches)) { $number_1 = $matches[1]; $operator = $matches[2]; $number_2 = $matches[3]; return calculate($number_1, $operator, $number_2); } return false; } function calculate($number_1, $operator, $number_2) { if ($operator === &#39;x&#39; || $operator === &#39;*&#39; || $operator === &#39;.&#39;) { return $number_1 * $number_2; } elseif ($operator === &#39;-&#39;) { return $number_1 - $number_2; } elseif ($operator === &#39;+&#39;) { return $number_1 + $number_2; } elseif ($operator === &#39;/&#39;) { return $number_1 / $number_2; } elseif ($operator === &#39;%&#39;) { return $number_1 % $number_2; } elseif ($operator === &#39;^&#39;) { return pow($number_1, $number_2); } else { return false; } } echo var_dump(parseExpression(&#39;23x347&#39;)); // int(7981) echo var_dump(parseExpression(&#39;8.8&#39;)); // int(64) echo var_dump(parseExpression(&#39;23*347&#39;)); // int(7981) echo var_dump(parseExpression(&#39;23-347&#39;)); // int(-324) echo var_dump(parseExpression(&#39;8/3&#39;)); // float(2.6666666666667) echo var_dump(parseExpression(&#39;8%7&#39;)); // int(1) echo var_dump(parseExpression(&#39;2^2&#39;)); // int(4) echo var_dump(parseExpression(&#39;2 ^ 2&#39;)); // int(4), whitespace ok echo var_dump(parseExpression(&#39;&#39;)); // bool(false) echo var_dump(parseExpression()); // bool(false) echo var_dump(parseExpression(&#39;1&#39;)); // bool(false) echo var_dump(parseExpression(&#39;0&#39;)); // bool(false) echo var_dump(parseExpression(1)); // bool(false) echo var_dump(parseExpression(&#39;whats 23x347?&#39;)); // int(7981) </code></pre> <p>正则表达式的快速解释:</p> <ul> <li>第一个括号匹配并捕获一个或多个数字</li> <li>0个或更多空格,匹配但未捕获</li> <li>第二个括号匹配并从列表中捕获一个数学运算符,注意特殊字符的反斜杠转义</li> <li>0个或更多空格,匹配但未捕获</li> <li>第三个括号匹配并捕获一个或多个数字</li> </ul> <p>可选的空格匹配允许使用“2*2”或“2 * 2”等短语</p> </answer> <answer tick="true" vote="0"> <p>你可以通过两种方式做到这一点。 preg_split 是最简单的,但 preg_match 也可以,只是多了一点工作。 </p> <p>preg_split</p> <pre><code>$equation = &#34;23x347&#34;; list($first_number, $second_number) = preg_split(&#34;/x/&#34;,$equation); print_r(array(&#39;first_number&#39; =&gt; $first_number, &#39;second_number&#39; =&gt; $second_number)); </code></pre> <p>preg_split 会将两个值作为单独的列表元素返回。</p> <pre><code>Array ( [first_number] =&gt; 23 [second_number] =&gt; 347 ) </code></pre> <p>预匹配</p> <pre><code>$equation = &#34;23x347?&#34;; list($first_number, $second_number) = preg_match(&#34;/(\d+)x(\d+).*/&#34;,$equation); print_r($matches); </code></pre> <p>preg_match 将填充 $matches 数组</p> <pre><code>Array ( [0] =&gt; 3x347? [1] =&gt; 23 [2] =&gt; 347 ) </code></pre> </answer> </body></html>

回答 0 投票 0

将不带引号的 JSON 字符串解析为多维关联数组

我一直致力于将特定格式的字符串转换为数组。使用爆炸分割字符串似乎不是正确的方法,而且我不太擅长正则表达式。所以我的问题...

回答 3 投票 0

Power Automate Desktop 中的正则表达式/设置文本解析

我正在使用从 Power Automate Desktop 中的收据内容 OCR 中提取的列表,并希望筛选特定的数字组(价格)。问题是 00-00 日期格式的数字会保留

回答 1 投票 0

将包含逗号分隔数字的大括号字符串解析为平面数组

有没有办法将下面所示形式的字符串转换为 PHP 中的数组? {1,2,3,4} 该字符串存储在这样的数据库中,我无法控制将内容插入到

回答 4 投票 0

如何将ini格式的字符串解析为关联数组?

我正试图打破这根弦, 南非荷兰语 = af 阿尔巴尼亚语=平方 阿姆哈里语 = am 阿拉伯语 = ar 亚美尼亚语 = hy 阿塞拜疆 = az 巴斯克=欧盟 白俄罗斯语=是 孟加拉语 = 十亿 比哈里 = bh 保加利亚语 = bg 缅甸人...

回答 5 投票 0

访问平面数组的键并将分隔键字符串解析为数组

我有一个像这样的数组 大批 ( [select_value_2_1] => 7 ) 我想将索引分解为数组([0]=select_value,[1]=2,[2]=1)

回答 5 投票 0

将包含类似于 PHP 数组语法的键值对的分隔字符串解析为关联数组

我想从此字符串创建一个数组,存储在数据库中: $string = '"2148" => "50","2050" => "2","2403" => "1"'; $id_value...

回答 7 投票 0

将带有两个分隔符的字符串分解为数组

我正在尝试从字符串构建一个二维数组。该字符串具有以下结构: $workers = "姓名1:年龄1/姓名2:年龄2/姓名3:年龄3"; 这个想法是将数组分解为“人...

回答 6 投票 0

将具有三个分隔符的字符串解析为索引数组的关联数组

我有这一行绳子 水果-香蕉|苹果|橙子:食品-薯条|香肠:甜点-冰淇淋|苹果派 :(冒号)是主要主题的分隔符,|是不同的分隔符...

回答 3 投票 0

将每行有两个分隔符的多行字符串解析为关联行数组

我资助了一些帖子将数据分解为数组,但我的有点具体,因为数据有两部分 我有这个 标题=标题1|链接=链接1 标题=标题2|链接=链接2 我需要的结果是这样的 大批 ( [0...

回答 3 投票 0

将包含方括号标签及其标签的字符串解析为数组

我已经构建了以下代码,它正在执行我的代码的数组部分所需的操作。 $demo = '[url=https://www78.zippyshare.com/v/AQg3SYMQ/file.html]1.就像 Im Fabo.mp3[/url][url=https://www78.

回答 3 投票 0

将带有 2 个分隔符的字符串转换为平面关联数组

这是一个字符串.. $string = "foo1: bar1, foo2: bar2, foo3: bar3"; 使用 , delimeter 进行爆炸 $爆炸=(“,”,$字符串); 现在 $exploded 数组包含: foo1:酒吧1 foo2:酒吧2 foo3:巴...

回答 1 投票 0

解析具有 3 个分隔符的字符串

我有一个二维数组,它是从字符串中分解出来的。一旦爆炸,输出如下: ---> 0 - 16~4~0.0~~~~假~~~~ ---> 1 - 1000.0~21.75~L~1~2.0~2.0~L~2~ ---> 2 - ---&g...

回答 4 投票 0

解析带有两个分隔符的字符串[重复]

如果我有字符串: 123+0,456+1,789+2, 我了解我可以执行以下操作: $测试 = 123+0,456+1,789+2,; $test = 爆炸(",", $test); 这会创建 ',' 之间每个部分的数组...

回答 5 投票 0

将方括号标记的文本解析为关联数组

我有一个 php 字符串,看起来像这样...... [line1]这是一些测试文本[/line1][line2]这是第2行文本[/line2][line3]这是第3行文本[/line3] 我正在尝试使用它并创建一个数组...

回答 2 投票 0

将查询字符串解析为关联数组[重复]

寻找有关最佳方法的建议(我知道有很多选择): 取一个这样的变量: $args = 'post_type=post&order_by=DESC&limit=10'; 创建一个函数来

回答 2 投票 0

将内联样式声明字符串解析为数组[重复]

假设我有一个像这样存储的数组: 大批 ( [0] => 宽度:650px;边框:1px 实线#000; [1] => 宽度:100%;背景:白色; [2] => 宽度:100%;背景:黑色; ...

回答 5 投票 0

从多行文本中的子字符串填充两个数组

我有一根像这样的绳子 $sitesinfo = '站点 1 标题-example1.com/ 站点 2 标题-example2.com/ 网站 3 标题-example3.com/ 站点 4 标题-example4.com/ 站点 5 标题-example5.com/'; 我以前...

回答 3 投票 0

解析 Ydm.His 格式的日期时间字符串

我有一个像下面这样的字符串 $num = "20142311.235504"; 我想按照以下格式分割字符串 $日期['年份'] = 2014; $日期['月份'] = 23; $日期['日'] = 11; $日期['小时'] = 23; $date['我...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.