【问题标题】:How can I extract a certain number from a string using Regular expressions?如何使用正则表达式从字符串中提取某个数字?
【发布时间】:2015-09-25 18:06:08
【问题描述】:

我认为这可能很容易,但我没有时间学习如何去做。

在一个 html 文件中,我有一个特定类别的段落,比如说:

<p class="footnote"></p>

“p”标签后面总是跟数字,每次加一。假设第一个数字是“43”。我希望数字系列从 1 开始,所以我需要从所有段落中减去 42。

例如,我想从:

<p class="footnote">43. Lorem</p>
<p class="footnote">44. Ipsum</p>. 
<p class="footnote">45. Dolor</p>. 

<p class="footnote">1. Lorem</p>
<p class="footnote">2. Ipsum</p>. 
<p class="footnote">3. Dolor</p>. 

我该怎么做?

【问题讨论】:

标签: regex epub adobe-indesign calibre


【解决方案1】:

如果您正在寻找可以处理 &lt;p class="footnote"&gt;43. Lorem&lt;/p&gt; 的正则表达式,答案是 don't parse HTML with regex

假设您已经从标签中提取了字符串43. Lorem,并且您想获得一个数字,那么这取决于您的要求:

要查找任何号码:\d+

要查找开头的任何数字:^\d+

要查找后跟句点的任何数字:\d+\.

更完整的解决方案需要有关问题的更多详细信息,包括您要使用的编程语言。

【讨论】:

  • 好的,我想我必须找到替代解决方案。
【解决方案2】:

使用 javascript 获取文本(虽然我将使用 jQuery),拆分文本,获取第一个元素,然后转换为整数。

$(".footnote").each(function(){
    var text = $(this).text();  // Get text
    var num = text.split(/\s+/g)[0]; // Split by whitespace and get the first elem
    console.log(parseInt(num)); // Convert the elem to an int
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2021-09-25
    • 1970-01-01
    • 2023-03-20
    • 2014-08-25
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多